]> git.mxchange.org Git - friendica-addons.git/commitdiff
forumdirectory: use the directory template from friendica core
authorrabuzarus <rabuzarus@t-online.de>
Mon, 18 Feb 2019 02:01:24 +0000 (03:01 +0100)
committerrabuzarus <rabuzarus@t-online.de>
Mon, 18 Feb 2019 02:01:24 +0000 (03:01 +0100)
forumdirectory/forumdirectory.css [deleted file]
forumdirectory/forumdirectory.php
forumdirectory/templates/forumdirectory_item.tpl [deleted file]

diff --git a/forumdirectory/forumdirectory.css b/forumdirectory/forumdirectory.css
deleted file mode 100644 (file)
index c3c8485..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-
-section .forumdirectory-item dl {
-  height: auto;
-  overflow: auto;      
-}
-
-section .forumdirectory-item dt {
-  float: left;
-  margin-left: 0px;
-  text-align: right;
-  color: #999;
-}
-section .forumdirectory-item dd {
-  float: left;
-  margin-left: 5px;
-}
-.forumdirectory-profile-wrapper {
-  float: left;
-  /*max-height: 178px; */
-  overflow: hidden;
-  width: 500px;
-  margin: 0px 20px;
-}
-.forumdirectory-copy-wrapper {
-  float: left;
-  overflow: hidden;    
-}
-
-.forumdirectory-item {
-  float: left;
-  width: 800px;
- /* height: 200px; */
-  box-shadow: 8px 8px 4px #000;
-  margin-top: 30px;
-  border: solid 1px #222;
-}
-section .forumdirectory-photo-wrapper {
-  float: left;
-  height: 200px;
-  width: 165px;        
-}
-
-.forumcontact-name {
-  font-size: 18px;
-  font-weight: bold;
-  margin-bottom: -3px;
-  text-align: left;
-}
-
-.page-type {
-  font-size: 10px;
-  font-style: italic;
-}
-.directory-detailscolumn-wrapper {
-  float: left; 
-  width: 305px;
-  margin-right: 10px;  
-}
-.directory-profile-wrapper dl {
-  margin-top: 3px;
-  margin-bottom: 3px;
-}
-.directory-profile-title {
-  font-weight: bold;
-  margin-bottom: 3px;
-  font-size: 14px;
-} 
index a96ba422fa3d3ca738f3686e81e6bbcaa593471f..c777ca18c5bb4134eba3bf68b3dcd4a79648088c 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Name: Forum Directory
  * Description: Add a directory of forums hosted on your server, with verbose descriptions.
- * Version: 1.0
+ * Version: 1.1
  * Author: Thomas Willingham <https://beardyunixer.com/profile/beardyunixer>
  */
 
@@ -13,6 +13,7 @@ use Friendica\Content\Widget;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
+use Friendica\Core\Logger;
 use Friendica\Core\Renderer;
 use Friendica\Database\DBA;
 use Friendica\Model\Profile;
@@ -20,6 +21,8 @@ use Friendica\Model\User;
 use Friendica\Util\Strings;
 use Friendica\Util\Temporal;
 
+include_once 'mod/directory.php';
+
 function forumdirectory_install()
 {
        Hook::register('app_menu', 'addon/forumdirectory/forumdirectory.php', 'forumdirectory_app_menu');
@@ -42,8 +45,6 @@ function forumdirectory_app_menu(App $a, array &$b)
 
 function forumdirectory_init(App $a)
 {
-       $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->getBaseURL() . '/addon/forumdirectory/forumdirectory.css" media="all" />';
-
        if (local_user()) {
                $a->page['aside'] .= Widget::findPeople();
        } else {
@@ -56,6 +57,7 @@ function forumdirectory_post(App $a)
        if (!empty($_POST['search'])) {
                $a->data['search'] = $_POST['search'];
        }
+       Logger::log(print_r($_POST, true));
 }
 
 function forumdirectory_content(App $a)
@@ -66,6 +68,8 @@ function forumdirectory_content(App $a)
        }
 
        $o = '';
+       $entries = [];
+
        Nav::setSelected('directory');
 
        if (!empty($a->data['search'])) {
@@ -74,52 +78,55 @@ function forumdirectory_content(App $a)
                $search = (!empty($_GET['search']) ? Strings::escapeTags(trim(rawurldecode($_GET['search']))) : '');
        }
 
-       $tpl = Renderer::getMarkupTemplate('directory_header.tpl');
-
-       $globaldir = '';
-       $gdirpath = Config::get('system', 'directory');
-       if (strlen($gdirpath)) {
-               $globaldir = '<ul><li><div id="global-directory-link"><a href="'
-                       . Profile::zrl($gdirpath, true) . '">' . L10n::t('Global Directory') . '</a></div></li></ul>';
+       $gdirpath = '';
+       $dirurl = Config::get('system', 'directory');
+       if (strlen($dirurl)) {
+               $gdirpath = Profile::zrl($dirurl, true);
        }
 
-       $admin = '';
-
-       $o .= Renderer::replaceMacros($tpl, [
-               '$search'    => $search,
-               '$globaldir' => $globaldir,
-               '$desc'      => L10n::t('Find on this site'),
-               '$admin'     => $admin,
-               '$finding'   => (strlen($search) ? '<h4>' . L10n::t('Finding: ') . "'" . $search . "'" . '</h4>' : ""),
-               '$sitedir'   => L10n::t('Site Directory'),
-               '$submit'    => L10n::t('Find')
-       ]);
-
        $sql_extra = '';
        if (strlen($search)) {
-               $sql_extra = " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,"
-                       . "`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` )"
-                       . " AGAINST ('" . DBA::escape($search) . "' IN BOOLEAN MODE) ";
+               $search = DBA::escape($search);
+
+               $sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR
+                               (`user`.`nickname` LIKE '%$search%') OR
+                               (`profile`.`pdesc` LIKE '%$search%') OR
+                               (`profile`.`locality` LIKE '%$search%') OR
+                               (`profile`.`region` LIKE '%$search%') OR
+                               (`profile`.`country-name` LIKE '%$search%') OR
+                               (`profile`.`gender` LIKE '%$search%') OR
+                               (`profile`.`marital` LIKE '%$search%') OR
+                               (`profile`.`sexual` LIKE '%$search%') OR
+                               (`profile`.`about` LIKE '%$search%') OR
+                               (`profile`.`romance` LIKE '%$search%') OR
+                               (`profile`.`work` LIKE '%$search%') OR
+                               (`profile`.`education` LIKE '%$search%') OR
+                               (`profile`.`pub_keywords` LIKE '%$search%') OR
+                               (`profile`.`prv_keywords` LIKE '%$search%'))";
        }
 
        $publish = Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 ";
 
        $total = 0;
-       $r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`"
-               . " WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 AND `page-flags` = 2 $sql_extra ");
-       if (DBA::isResult($r)) {
-               $total = $r[0]['total'];
+       $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `profile`
+                               LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
+                               WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` `user`.`page-flags` = 2 $sql_extra");
+       if (DBA::isResult($cnt)) {
+               $total = $cnt['total'];
        }
 
        $pager = new Pager($a->query_string, 60);
 
        $order = " ORDER BY `name` ASC ";
 
-       $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`"
-               . " FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish"
-               . " AND `user`.`blocked` = 0 AND `page-flags` = 2 $sql_extra $order LIMIT %d , %d ",
-               $pager->getStart(),
-               $pager->getItemsPerPage()
+       $limit = $pager->getStart()."," . $pager->getItemsPerPage();
+
+       $r = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
+                       `contact`.`addr`, `contact`.`url` AS `profile_url` FROM `profile`
+                       LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
+                       LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid`
+                       WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `user`.`page-flags` = 2 AND `contact`.`self`
+                       $sql_extra $order LIMIT $limit"
        );
 
        if (DBA::isResult($r)) {
@@ -129,89 +136,28 @@ function forumdirectory_content(App $a)
                        $photo = 'photo';
                }
 
-               foreach ($r as $rr) {
-                       $profile_link = $a->getBaseURL() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
-
-                       $pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : '');
-
-                       $details = '';
-                       if (strlen($rr['locality'])) {
-                               $details .= $rr['locality'];
-                       }
-
-                       if (strlen($rr['region'])) {
-                               if (strlen($rr['locality'])) {
-                                       $details .= ', ';
-                               }
-                               $details .= $rr['region'];
-                       }
-                       if (strlen($rr['country-name'])) {
-                               if (strlen($details)) {
-                                       $details .= ', ';
-                               }
-                               $details .= $rr['country-name'];
-                       }
-
-                       if (strlen($rr['dob']) && ($years = Temporal::getAgeByTimezone($rr['dob'], $rr['timezone'], '')) != 0) {
-                               $details .= '<br />' . L10n::t('Age: ') . $years;
-                       }
-
-                       if (strlen($rr['gender'])) {
-                               $details .= '<br />' . L10n::t('Gender: ') . $rr['gender'];
-                       }
-
-                       switch ($rr['page-flags']) {
-                               case User::PAGE_FLAGS_NORMAL   : $page_type = "Personal Profile"; break;
-                               case User::PAGE_FLAGS_SOAPBOX  : $page_type = "Fan Page"        ; break;
-                               case User::PAGE_FLAGS_COMMUNITY: $page_type = "Community Forum" ; break;
-                               case User::PAGE_FLAGS_FREELOVE : $page_type = "Open Forum"      ; break;
-                               case User::PAGE_FLAGS_PRVGROUP : $page_type = "Private Group"   ; break;
-                       }
-
-                       $profile = $rr;
-
-                       $location = '';
-                       if (!empty($profile['address'])
-                               || !empty($profile['locality'])
-                               || !empty($profile['region'])
-                               || !empty($profile['postal-code'])
-                               || !empty($profile['country-name'])
-                       ) {
-                               $location = L10n::t('Location:');
-                       }
-
-                       $gender   = !empty($profile['gender'])   ? L10n::t('Gender:')   : false;
-                       $marital  = !empty($profile['marital'])  ? L10n::t('Status:')   : false;
-                       $homepage = !empty($profile['homepage']) ? L10n::t('Homepage:') : false;
-                       $about    = !empty($profile['about'])    ? L10n::t('About:')    : false;
-
-                       $tpl = Renderer::getMarkupTemplate('forumdirectory_item.tpl', 'addon/forumdirectory/');
-
-                       $entry = Renderer::replaceMacros($tpl, [
-                               '$id'           => $rr['id'],
-                               '$profile_link' => $profile_link,
-                               '$photo'        => $rr[$photo],
-                               '$alt_text'     => $rr['name'],
-                               '$name'         => $rr['name'],
-                               '$details'      => $pdesc . $details,
-                               '$page_type'    => $page_type,
-                               '$profile'      => $profile,
-                               '$location'     => $location,
-                               '$gender'       => $gender,
-                               '$pdesc'        => $pdesc,
-                               '$marital'      => $marital,
-                               '$homepage'     => $homepage,
-                               '$about'        => $about,
-                       ]);
-
-                       $o .= $entry;
+               while ($rr = DBA::fetch($r)) {
+                       $entries[] = format_directory_entry($rr, $photo);
                }
-
-               $o .= "<div class=\"directory-end\" ></div>\r\n";
-               $o .= $pager->renderFull($total);
+               DBA::close($r);
        } else {
                info(L10n::t("No entries \x28some entries may be hidden\x29.") . EOL);
        }
 
+       $tpl = Renderer::getMarkupTemplate('directory_header.tpl');
+       $o .= Renderer::replaceMacros($tpl, [
+               '$search'     => $search,
+               '$globaldir'  => L10n::t('Global Directory'),
+               '$gdirpath'   => $gdirpath,
+               '$desc'       => L10n::t('Find on this site'),
+               '$contacts'   => $entries,
+               '$finding'    => L10n::t('Results for:'),
+               '$findterm'   => (strlen($search) ? $search : ""),
+               '$title'      => L10n::t('Forum Directory'),
+               '$search_mod' => 'forumdirectory',
+               '$submit'     => L10n::t('Find'),
+               '$paginate'   => $pager->renderFull($total),
+       ]);
+
        return $o;
 }
diff --git a/forumdirectory/templates/forumdirectory_item.tpl b/forumdirectory/templates/forumdirectory_item.tpl
deleted file mode 100644 (file)
index 5ffa640..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-
-<div class="forumdirectory-item" id="forumdirectory-item-{{$id}}" >
-       <div class="forumdirectory-photo-wrapper" id="forumdirectory-photo-wrapper-{{$id}}" > 
-               <div class="forumdirectory-photo" id="forumdirectory-photo-{{$id}}" >
-                       <a href="{{$profile_link}}" class="forumdirectory-profile-link" id="forumdirectory-profile-link-{{$id}}" >
-                               <img class="forumdirectory-photo-img photo" src="{{$photo}}" alt="{{$alt_text}}" title="{{$alt_text}}" />
-                       </a>
-               </div>
-       </div>
-       <div class="forumdirectory-profile-wrapper" id="forumdirectory-profile-wrapper-{{$id}}" >
-               <div class="contact-name" id="forumdirectory-name-{{$id}}">{{$name}}</div>
-               <div class="page-type">{{$page_type}}</div>
-               {{if $pdesc}}<div class="forumdirectory-profile-title">{{$profile.pdesc}}</div>{{/if}}
-       <div class="forumdirectory-detailcolumns-wrapper" id="forumdirectory-detailcolumns-wrapper-{{$id}}">
-               <div class="forumdirectory-detailscolumn-wrapper" id="forumdirectory-detailscolumn1-wrapper-{{$id}}">   
-                       {{if $location}}
-                           <dl class="location"><dt class="location-label">{{$location}}</dt>
-                               <dd class="adr">
-                                       {{if $profile.address}}<div class="street-address">{{$profile.address}}</div>{{/if}}
-                                       <span class="city-state-zip">
-                                               {{if $profile.locality}}<span class="locality">{{$profile.locality}}</span>, {{/if}}
-                                               {{if $profile.region}}<span class="region">{{$profile.region}}</span>{{/if}}
-                                               {{if $profile['postal-code']}}<span class="postal-code">{{$profile['postal-code']}}</span>{{/if}}
-                                       </span>
-                                       {{if $profile['country-name']}}<span class="country-name">{{$profile['country-name']}}</span>{{/if}}
-                               </dd>
-                               </dl>
-                       {{/if}}
-
-                       {{if $gender}}<dl class="mf"><dt class="gender-label">{{$gender}}</dt> <dd class="x-gender">{{$profile.gender}}</dd></dl>{{/if}}
-                       </div>  
-                       <div class="forumdirectory-detailscolumn-wrapper" id="forumdirectory-detailscolumn2-wrapper-{{$id}}">   
-                               {{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart">&hearts;</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
-
-                               {{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" target="_blank">{{$profile.homepage}}</a></dd></dl>{{/if}}
-                       </div>
-               </div>
-               <div class="forumdirectory-copy-wrapper" id="forumdirectory-copy-wrapper-{{$id}}" >
-                       {{if $about}}<dl class="forumdirectory-copy"><dt class="forumdirectory-copy-label">{{$about}}</dt><dd class="forumdirectory-copy-data">{{$profile.about nofilter}}</dd></dl>{{/if}}
-               </div>
-       </div>
-</div>