X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FProfile.php;h=e1903b8c55f3ba985f3196a9849aaa4d570ad137;hb=6c36fd9e01510a14fea9de766b4afe6760912a2e;hp=69db45acf1fe0bf0107fbc9222c86442fa386516;hpb=8c03bdada92845974ecadeecb9e673c7ffac22b4;p=friendica.git diff --git a/src/Module/Profile.php b/src/Module/Profile.php index 69db45acf1..e1903b8c55 100644 --- a/src/Module/Profile.php +++ b/src/Module/Profile.php @@ -9,18 +9,15 @@ use Friendica\Content\Widget; use Friendica\Core\ACL; use Friendica\Core\Config; use Friendica\Core\Hook; -use Friendica\Core\L10n; -use Friendica\Core\PConfig; use Friendica\Core\Session; use Friendica\Core\System; use Friendica\Database\DBA; -use Friendica\Model\Contact as ContactModel; -use Friendica\Model\Group; +use Friendica\DI; use Friendica\Model\Item; use Friendica\Model\Profile as ProfileModel; use Friendica\Model\User; +use Friendica\Module\Security\Login; use Friendica\Protocol\ActivityPub; -use Friendica\Protocol\DFRN; use Friendica\Util\DateTimeFormat; use Friendica\Util\Security; use Friendica\Util\Strings; @@ -35,7 +32,7 @@ class Profile extends BaseModule public static function init(array $parameters = []) { - $a = self::getApp(); + $a = DI::app(); // @TODO: Replace with parameter from router if ($a->argc < 2) { @@ -77,66 +74,65 @@ class Profile extends BaseModule public static function content(array $parameters = [], $update = 0) { - $a = self::getApp(); + $a = DI::app(); if (!$update) { ProfileModel::load($a, self::$which, self::$profile); - $a->page['htmlhead'] .= "\n"; + $page = DI::page(); - $blocked = !local_user() && !Session::getRemoteContactID($a->profile['profile_uid']) && Config::get('system', 'block_public'); + $page['htmlhead'] .= "\n"; + + $blocked = !local_user() && !Session::getRemoteContactID($a->profile['profile_uid']) && DI::config()->get('system', 'block_public'); $userblock = !local_user() && !Session::getRemoteContactID($a->profile['profile_uid']) && $a->profile['hidewall']; if (!empty($a->profile['page-flags']) && $a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } if (!empty($a->profile['openidserver'])) { - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } if (!empty($a->profile['openid'])) { $delegate = strstr($a->profile['openid'], '://') ? $a->profile['openid'] : 'https://' . $a->profile['openid']; - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } // site block if (!$blocked && !$userblock) { $keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], $a->profile['pub_keywords'] ?? ''); if (strlen($keywords)) { - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } } - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; if (!$a->profile['net-publish'] || $a->profile['hidewall']) { - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } - $a->page['htmlhead'] .= '' . "\n"; - $a->page['htmlhead'] .= '' . "\n"; - $a->page['htmlhead'] .= '' . "\n"; - $a->page['htmlhead'] .= '' . "\n"; - $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->getHostName() . ($a->getURLPath() ? '/' . $a->getURLPath() : '')); - $a->page['htmlhead'] .= '' . "\n"; - header('Link: <' . System::baseUrl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); + $page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; + $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . DI::baseUrl()->getHostname() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : '')); + $page['htmlhead'] .= '' . "\n"; + header('Link: <' . DI::baseUrl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); $dfrn_pages = ['request', 'confirm', 'notify', 'poll']; foreach ($dfrn_pages as $dfrn) { - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } - $a->page['htmlhead'] .= '' . "\n"; + $page['htmlhead'] .= '' . "\n"; } $category = $datequery = $datequery2 = ''; - /** @var DateTimeFormat $dtFormat */ - $dtFormat = self::getClass(DateTimeFormat::class); - if ($a->argc > 2) { for ($x = 2; $x < $a->argc; $x ++) { - if ($dtFormat->isYearMonth($a->argv[$x])) { + if (DI::dtFormat()->isYearMonth($a->argv[$x])) { if ($datequery) { $datequery2 = Strings::escapeHtml($a->argv[$x]); } else { @@ -154,7 +150,7 @@ class Profile extends BaseModule $hashtags = $_GET['tag'] ?? ''; - if (Config::get('system', 'block_public') && !local_user() && !Session::getRemoteContactID($a->profile['profile_uid'])) { + if (DI::config()->get('system', 'block_public') && !local_user() && !Session::getRemoteContactID($a->profile['profile_uid'])) { return Login::form(); } @@ -172,12 +168,12 @@ class Profile extends BaseModule $last_updated_key = "profile:" . $a->profile['profile_uid'] . ":" . local_user() . ":" . $remote_contact; if (!empty($a->profile['hidewall']) && !$is_owner && !$remote_contact) { - notice(L10n::t('Access to this profile has been restricted.') . EOL); + notice(DI::l10n()->t('Access to this profile has been restricted.') . EOL); return ''; } if (!$update) { - $tab = Strings::escapeTags(trim($_GET['tab'] ?? '')); + $tab = Strings::escapeTags(trim($_GET['tab'] ?? '')); $o .= ProfileModel::getTabs($a, $tab, $is_owner, $a->profile['nickname']); @@ -192,9 +188,9 @@ class Profile extends BaseModule $commpage = $a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $commvisitor = $commpage && $remote_contact; - $a->page['aside'] .= Widget::postedByYear(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], $a->profile['profile_uid'] ?? 0, true); - $a->page['aside'] .= Widget::categories(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], XML::escape($category)); - $a->page['aside'] .= Widget::tagCloud(); + DI::page()['aside'] .= Widget::postedByYear(DI::baseUrl()->get(true) . '/profile/' . $a->profile['nickname'], $a->profile['profile_uid'] ?? 0, true); + DI::page()['aside'] .= Widget::categories(DI::baseUrl()->get(true) . '/profile/' . $a->profile['nickname'], XML::escape($category)); + DI::page()['aside'] .= Widget::tagCloud(); if (Security::canWriteToUserWall($a->profile['profile_uid'])) { $x = [ @@ -208,7 +204,7 @@ class Profile extends BaseModule || strlen($a->user['deny_cid']) || strlen($a->user['deny_gid']) ) ? 'lock' : 'unlock', - 'acl' => $is_owner ? ACL::getFullSelectorHTML($a->user, true) : '', + 'acl' => $is_owner ? ACL::getFullSelectorHTML(DI::page(), $a->user, true) : '', 'bang' => '', 'visitor' => $is_owner || $commvisitor ? 'block' : 'none', 'profile_uid' => $a->profile['profile_uid'], @@ -259,7 +255,7 @@ class Profile extends BaseModule return ''; } - $pager = new Pager($a->query_string); + $pager = new Pager(DI::args()->getQueryString()); } else { $sql_post_table = ""; @@ -291,10 +287,10 @@ class Profile extends BaseModule // check if we serve a mobile device and get the user settings // accordingly - if ($a->is_mobile) { - $itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_mobile_network', 10); + if (DI::mode()->isMobile()) { + $itemspage_network = DI::pConfig()->get(local_user(), 'system', 'itemspage_mobile_network', 10); } else { - $itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_network', 20); + $itemspage_network = DI::pConfig()->get(local_user(), 'system', 'itemspage_network', 20); } // now that we have the user settings, see if the theme forces @@ -303,7 +299,7 @@ class Profile extends BaseModule $itemspage_network = $a->force_max_items; } - $pager = new Pager($a->query_string, $itemspage_network); + $pager = new Pager(DI::args()->getQueryString(), $itemspage_network); $pager_sql = sprintf(" LIMIT %d, %d ", $pager->getStart(), $pager->getItemsPerPage()); @@ -335,7 +331,7 @@ class Profile extends BaseModule $last_updated_array[$last_updated_key] = time(); Session::set('last_updated', $last_updated_array); - if ($is_owner && !$update && !Config::get('theme', 'hide_eventlist')) { + if ($is_owner && !$update && !DI::config()->get('theme', 'hide_eventlist')) { $o .= ProfileModel::getBirthdays(); $o .= ProfileModel::getEventsReminderHTML(); } @@ -349,7 +345,13 @@ class Profile extends BaseModule $items = DBA::toArray($items_stmt); - $o .= conversation($a, $items, $pager, 'profile', $update, false, 'received', $a->profile['profile_uid']); + if ($pager->getStart() == 0 && !empty($a->profile['profile_uid'])) { + $pinned_items = Item::selectPinned($a->profile['profile_uid'], ['uri', 'pinned'], ['true' . $sql_extra]); + $pinned = Item::inArray($pinned_items); + $items = array_merge($items, $pinned); + } + + $o .= conversation($a, $items, $pager, 'profile', $update, false, 'pinned_received', $a->profile['profile_uid']); if (!$update) { $o .= $pager->renderMinimal(count($items));