X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fdirectory.php;h=6ef3134517cf60cf3bd3ecf8ef8681eb7b794b79;hb=41663c7592abe55a958632c3a48265e0a8544d2b;hp=90d7abcc0bfdca51fd2236585205df24c5c86821;hpb=0eafea86edd0acd4cc928332e0ef0e7dd18c3e03;p=friendica.git
diff --git a/mod/directory.php b/mod/directory.php
index 90d7abcc0b..6ef3134517 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -2,20 +2,23 @@
/**
* @file mod/directory.php
*/
+
use Friendica\App;
use Friendica\Content\Nav;
+use Friendica\Content\Pager;
use Friendica\Content\Widget;
-use Friendica\Core\Addon;
use Friendica\Core\Config;
+use Friendica\Core\Hook;
use Friendica\Core\L10n;
-use Friendica\Database\DBM;
+use Friendica\Core\Renderer;
+use Friendica\Database\DBA;
use Friendica\Model\Contact;
use Friendica\Model\Profile;
+use Friendica\Util\Proxy as ProxyUtils;
+use Friendica\Util\Strings;
function directory_init(App $a)
{
- $a->set_pager_itemspage(60);
-
if (local_user()) {
$a->page['aside'] .= Widget::findPeople();
$a->page['aside'] .= Widget::follow();
@@ -27,15 +30,13 @@ function directory_init(App $a)
function directory_post(App $a)
{
- if (x($_POST, 'search')) {
+ if (!empty($_POST['search'])) {
$a->data['search'] = $_POST['search'];
}
}
function directory_content(App $a)
{
- require_once("mod/proxy.php");
-
if ((Config::get('system', 'block_public') && !local_user() && !remote_user())
|| (Config::get('system', 'block_local_dir') && !local_user() && !remote_user())
) {
@@ -46,10 +47,10 @@ function directory_content(App $a)
$o = '';
Nav::setSelected('directory');
- if (x($a->data, 'search')) {
- $search = notags(trim($a->data['search']));
+ if (!empty($a->data['search'])) {
+ $search = Strings::escapeTags(trim($a->data['search']));
} else {
- $search = ((x($_GET, 'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
+ $search = (!empty($_GET['search']) ? Strings::escapeTags(trim(rawurldecode($_GET['search']))) : '');
}
$gdirpath = '';
@@ -59,7 +60,7 @@ function directory_content(App $a)
}
if ($search) {
- $search = dbesc($search);
+ $search = DBA::escape($search);
$sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR
(`user`.`nickname` LIKE '%$search%') OR
@@ -76,41 +77,46 @@ function directory_content(App $a)
(`profile`.`education` LIKE '%$search%') OR
(`profile`.`pub_keywords` LIKE '%$search%') OR
(`profile`.`prv_keywords` LIKE '%$search%'))";
+ } else {
+ $sql_extra = '';
}
$publish = (Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 " );
- $cnt = dba::fetch_first("SELECT COUNT(*) AS `total` FROM `profile`
+ $total = 0;
+ $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` $sql_extra");
- if (DBM::is_result($cnt)) {
- $a->set_pager_total($cnt['total']);
+ WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra");
+ if (DBA::isResult($cnt)) {
+ $total = $cnt['total'];
}
+ $pager = new Pager($a->query_string, 60);
$order = " ORDER BY `name` ASC ";
- $limit = intval($a->pager['start'])."," . intval($a->pager['itemspage']);
+ $limit = $pager->getStart()."," . $pager->getItemsPerPage();
- $r = dba::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
+ $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 `user`.`blocked` = 0 AND `contact`.`self` $sql_extra $order LIMIT ".$limit
+ WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self`
+ $sql_extra $order LIMIT $limit"
);
- if (DBM::is_result($r)) {
+ if (DBA::isResult($r)) {
if (in_array('small', $a->argv)) {
$photo = 'thumb';
} else {
$photo = 'photo';
}
- while ($rr = dba::fetch($r)) {
- $itemurl= '';
+ $entries = [];
+ while ($rr = DBA::fetch($r)) {
$itemurl = (($rr['addr'] != "") ? $rr['addr'] : $rr['profile_url']);
- $profile_link = 'profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
+ $profile_link = $rr['profile_url'];
$pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '
' : '');
@@ -132,26 +138,28 @@ function directory_content(App $a)
}
// if(strlen($rr['dob'])) {
// if(($years = age($rr['dob'],$rr['timezone'],'')) != 0)
-// $details .= '
' . L10n::t('Age: ') . $years ;
+// $details .= '
' . L10n::t('Age: ') . $years;
// }
// if(strlen($rr['gender']))
// $details .= '
' . L10n::t('Gender: ') . $rr['gender'];
$profile = $rr;
- if ((x($profile, 'address') == 1)
- || (x($profile, 'locality') == 1)
- || (x($profile, 'region') == 1)
- || (x($profile, 'postal-code') == 1)
- || (x($profile, 'country-name') == 1)
+ if (!empty($profile['address'])
+ || !empty($profile['locality'])
+ || !empty($profile['region'])
+ || !empty($profile['postal-code'])
+ || !empty($profile['country-name'])
) {
$location = L10n::t('Location:');
+ } else {
+ $location = '';
}
- $gender = ((x($profile, 'gender') == 1) ? L10n::t('Gender:') : false);
- $marital = ((x($profile, 'marital') == 1) ? L10n::t('Status:') : false);
- $homepage = ((x($profile, 'homepage') == 1) ? L10n::t('Homepage:') : false);
- $about = ((x($profile, 'about') == 1) ? L10n::t('About:') : false);
+ $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);
$location_e = $location;
@@ -161,9 +169,9 @@ function directory_content(App $a)
$entry = [
'id' => $rr['id'],
- 'url' => $profile_link,
+ 'url' => Contact::magicLInk($profile_link),
'itemurl' => $itemurl,
- 'thumb' => proxy_url($rr[$photo], false, PROXY_SIZE_THUMB),
+ 'thumb' => ProxyUtils::proxifyUrl($rr[$photo], false, ProxyUtils::SIZE_THUMB),
'img_hover' => $rr['name'],
'name' => $rr['name'],
'details' => $details,
@@ -182,7 +190,7 @@ function directory_content(App $a)
$arr = ['contact' => $rr, 'entry' => $entry];
- Addon::callHooks('directory_item', $arr);
+ Hook::callAll('directory_item', $arr);
unset($profile);
unset($location);
@@ -193,11 +201,11 @@ function directory_content(App $a)
$entries[] = $arr['entry'];
}
- dba::close($r);
+ DBA::close($r);
- $tpl = get_markup_template('directory_header.tpl');
+ $tpl = Renderer::getMarkupTemplate('directory_header.tpl');
- $o .= replace_macros($tpl, [
+ $o .= Renderer::replaceMacros($tpl, [
'$search' => $search,
'$globaldir' => L10n::t('Global Directory'),
'$gdirpath' => $gdirpath,
@@ -207,7 +215,7 @@ function directory_content(App $a)
'$findterm' => (strlen($search) ? $search : ""),
'$title' => L10n::t('Site Directory'),
'$submit' => L10n::t('Find'),
- '$paginate' => paginate($a),
+ '$paginate' => $pager->renderFull($total),
]);
} else {
info(L10n::t("No entries \x28some entries may be hidden\x29.") . EOL);