X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fprofile.php;h=9550fe25e1776f862de48d01644162f0ad3e4525;hb=303aef34f0804f9becc10610ae85985835f9d9bf;hp=59762f4790b18a39677ebedb5253957cb1eacbbe;hpb=4fb2547df87825c136d3ee080bc6960f5c957c65;p=friendica.git diff --git a/mod/profile.php b/mod/profile.php index 59762f4790..9550fe25e1 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -2,17 +2,24 @@ /** * @file mod/profile.php */ + use Friendica\App; +use Friendica\Content\Nav; +use Friendica\Content\Widget; +use Friendica\Core\ACL; +use Friendica\Core\Addon; use Friendica\Core\Config; +use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\System; +use Friendica\Database\DBA; use Friendica\Database\DBM; use Friendica\Model\Group; +use Friendica\Model\Item; use Friendica\Model\Profile; use Friendica\Module\Login; use Friendica\Protocol\DFRN; - -require_once 'include/contact_widgets.php'; +use Friendica\Util\DateTimeFormat; function profile_init(App $a) { @@ -28,7 +35,7 @@ function profile_init(App $a) goaway(System::baseUrl() . '/profile/' . $r[0]['nickname']); } else { logger('profile error: mod_profile ' . $a->query_string, LOGGER_DEBUG); - notice(t('Requested profile is not available.') . EOL); + notice(L10n::t('Requested profile is not available.') . EOL); $a->error = 404; return; } @@ -62,21 +69,22 @@ function profile_init(App $a) // site block if (!$blocked && !$userblock) { - $keywords = str_replace(array('#', ',', ' ', ',,'), array('', ' ', ',', ','), defaults($a->profile, 'pub_keywords', '')); + $keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], defaults($a->profile, 'pub_keywords', '')); if (strlen($keywords)) { $a->page['htmlhead'] .= '' . "\r\n"; } } $a->page['htmlhead'] .= '' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; - $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . ($a->path ? '/' . $a->path : '')); + $a->page['htmlhead'] .= '' . "\r\n"; + $a->page['htmlhead'] .= '' . "\r\n"; + $a->page['htmlhead'] .= '' . "\r\n"; + $a->page['htmlhead'] .= '' . "\r\n"; + $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . ($a->urlpath ? '/' . $a->urlpath : '')); $a->page['htmlhead'] .= '' . "\r\n"; header('Link: <' . System::baseUrl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false); - $dfrn_pages = array('request', 'confirm', 'notify', 'poll'); + $dfrn_pages = ['request', 'confirm', 'notify', 'poll']; foreach ($dfrn_pages as $dfrn) { $a->page['htmlhead'] .= "\r\n"; } @@ -111,13 +119,11 @@ function profile_content(App $a, $update = 0) return Login::form(); } - require_once 'include/bbcode.php'; require_once 'include/security.php'; require_once 'include/conversation.php'; - require_once 'include/acl_selectors.php'; require_once 'include/items.php'; - $groups = array(); + $groups = []; $tab = 'posts'; $o = ''; @@ -126,7 +132,7 @@ function profile_content(App $a, $update = 0) // Ensure we've got a profile owner if updating. $a->profile['profile_uid'] = $update; } elseif ($a->profile['profile_uid'] == local_user()) { - nav_set_selected('home'); + Nav::setSelected('home'); } $contact = null; @@ -166,7 +172,7 @@ function profile_content(App $a, $update = 0) $last_updated_key = "profile:" . $a->profile['profile_uid'] . ":" . local_user() . ":" . remote_user(); if (x($a->profile, 'hidewall') && !$is_owner && !$remote_contact) { - notice(t('Access to this profile has been restricted.') . EOL); + notice(L10n::t('Access to this profile has been restricted.') . EOL); return; } @@ -180,25 +186,21 @@ function profile_content(App $a, $update = 0) if ($tab === 'profile') { $o .= Profile::getAdvanced($a); - call_hooks('profile_advanced', $o); + Addon::callHooks('profile_advanced', $o); return $o; } - $o .= common_friends_visitor_widget($a->profile['profile_uid']); - - if (x($_SESSION, 'new_member') && $is_owner) { - $o .= '' . t('Tips for New Members') . '' . EOL; - } + $o .= Widget::commonFriendsVisitor($a->profile['profile_uid']); $commpage = $a->profile['page-flags'] == PAGE_COMMUNITY; $commvisitor = $commpage && $remote_contact; $a->page['aside'] .= posted_date_widget(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], $a->profile['profile_uid'], true); - $a->page['aside'] .= categories_widget(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], (x($category) ? xmlify($category) : '')); - $a->page['aside'] .= tagcloud_wall_widget(); + $a->page['aside'] .= Widget::categories(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], (x($category) ? xmlify($category) : '')); + $a->page['aside'] .= Widget::tagCloud(); if (can_write_wall($a->profile['profile_uid'])) { - $x = array( + $x = [ 'is_owner' => $is_owner, 'allow_location' => ($is_owner || $commvisitor) && $a->profile['allow_location'], 'default_location' => $is_owner ? $a->user['default-location'] : '', @@ -209,11 +211,11 @@ function profile_content(App $a, $update = 0) || strlen($a->user['deny_cid']) || strlen($a->user['deny_gid']) ) ? 'lock' : 'unlock', - 'acl' => $is_owner ? populate_acl($a->user, true) : '', + 'acl' => $is_owner ? ACL::getFullSelectorHTML($a->user, true) : '', 'bang' => '', 'visitor' => $is_owner || $commvisitor ? 'block' : 'none', 'profile_uid' => $a->profile['profile_uid'], - ); + ]; $o .= status_editor($a, $x); } @@ -232,23 +234,20 @@ function profile_content(App $a, $update = 0) if ($is_owner || !$last_updated) { $sql_extra4 = " AND `item`.`unseen`"; } else { - $gmupdate = gmdate("Y-m-d H:i:s", $last_updated); + $gmupdate = gmdate(DateTimeFormat::MYSQL, $last_updated); $sql_extra4 = " AND `item`.`received` > '" . $gmupdate . "'"; } $r = q("SELECT distinct(parent) AS `item_id`, `item`.`network` AS `item_network`, `item`.`created` FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` - AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 - WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND - (`item`.`deleted` = 0 OR item.verb = '" . ACTIVITY_LIKE . "' - OR item.verb = '" . ACTIVITY_DISLIKE . "' OR item.verb = '" . ACTIVITY_ATTEND . "' - OR item.verb = '" . ACTIVITY_ATTENDNO . "' OR item.verb = '" . ACTIVITY_ATTENDMAYBE . "') - AND `item`.`moderated` = 0 - AND `item`.`wall` = 1 + AND NOT `contact`.`blocked` AND NOT `contact`.`pending` + WHERE `item`.`uid` = %d AND `item`.`visible` AND + (NOT `item`.`deleted` OR `item`.`gravity` = %d) + AND NOT `item`.`moderated` AND `item`.`wall` $sql_extra4 $sql_extra ORDER BY `item`.`created` DESC", - intval($a->profile['profile_uid']) + intval($a->profile['profile_uid']), intval(GRAVITY_ACTIVITY) ); if (!DBM::is_result($r)) { @@ -268,10 +267,10 @@ function profile_content(App $a, $update = 0) } if ($datequery) { - $sql_extra2 .= protect_sprintf(sprintf(" AND `thread`.`created` <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(), '', $datequery)))); + $sql_extra2 .= protect_sprintf(sprintf(" AND `thread`.`created` <= '%s' ", dbesc(DateTimeFormat::convert($datequery, 'UTC', date_default_timezone_get())))); } if ($datequery2) { - $sql_extra2 .= protect_sprintf(sprintf(" AND `thread`.`created` >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(), '', $datequery2)))); + $sql_extra2 .= protect_sprintf(sprintf(" AND `thread`.`created` >= '%s' ", dbesc(DateTimeFormat::convert($datequery2, 'UTC', date_default_timezone_get())))); } // Belongs the profile page to a forum? @@ -284,6 +283,8 @@ function profile_content(App $a, $update = 0) if (!DBM::is_result($r)) { $sql_extra3 = sprintf(" AND `thread`.`contact-id` = %d ", intval(intval($a->profile['contact_id']))); + } else { + $sql_extra3 = ""; } // check if we serve a mobile device and get the user settings @@ -320,7 +321,7 @@ function profile_content(App $a, $update = 0) ); } - $parents_arr = array(); + $parents_arr = []; $parents_str = ''; // Set a time stamp for this page. We will make use of it when we @@ -332,35 +333,28 @@ function profile_content(App $a, $update = 0) $parents_arr[] = $rr['item_id']; } - $parents_str = implode(', ', $parents_arr); - - $items = q(item_query() . " AND `item`.`uid` = %d - AND `item`.`parent` IN (%s) - $sql_extra ", - intval($a->profile['profile_uid']), - dbesc($parents_str) - ); - - $items = conv_sort($items, 'created'); + $condition = ['uid' => $a->profile['profile_uid'], 'parent' => $parents_arr]; + $result = Item::selectForUser($a->profile['profile_uid'], [], $condition); + $items = conv_sort(Item::inArray($result), 'created'); } else { - $items = array(); + $items = []; } if ($is_owner && !$update && !Config::get('theme', 'hide_eventlist')) { $o .= Profile::getBirthdays(); - $o .= Profile::getEvents(); + $o .= Profile::getEventsReminderHTML(); } if ($is_owner) { - $unseen = dba::exists('item', array('wall' => true, 'unseen' => true, 'uid' => local_user())); + $unseen = DBA::exists('item', ['wall' => true, 'unseen' => true, 'uid' => local_user()]); if ($unseen) { - $r = dba::update('item', array('unseen' => false), - array('wall' => true, 'unseen' => true, 'uid' => local_user())); + $r = Item::update(['unseen' => false], + ['wall' => true, 'unseen' => true, 'uid' => local_user()]); } } - $o .= conversation($a, $items, 'profile', $update); + $o .= conversation($a, $items, 'profile', $update, false, 'commented', local_user()); if (!$update) { $o .= alt_pager($a, count($items));