X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fnetwork.php;h=f7dbc14ede369e35c4a5d52f7a71a59877402d5d;hb=8d84f33f15447e30e61d1266e378bbf6b092b4be;hp=81a2f2b2ba63e8514b634664d50191099d10e03b;hpb=d577ab98eb0f28f9f807795f54c87d80ef9c0dc2;p=friendica.git diff --git a/mod/network.php b/mod/network.php index 81a2f2b2ba..f7dbc14ede 100644 --- a/mod/network.php +++ b/mod/network.php @@ -12,7 +12,6 @@ use Friendica\Content\Pager; use Friendica\Content\Widget; use Friendica\Content\Text\HTML; use Friendica\Core\ACL; -use Friendica\Core\Addon; use Friendica\Core\Config; use Friendica\Core\Hook; use Friendica\Core\L10n; @@ -30,9 +29,6 @@ use Friendica\Util\DateTimeFormat; use Friendica\Util\Proxy as ProxyUtils; use Friendica\Util\Strings; -require_once 'include/conversation.php'; -require_once 'include/items.php'; - function network_init(App $a) { if (!local_user()) { @@ -42,19 +38,19 @@ function network_init(App $a) Hook::add('head', __FILE__, 'network_infinite_scroll_head'); - $search = (x($_GET, 'search') ? Strings::escapeHtml($_GET['search']) : ''); + $search = (!empty($_GET['search']) ? Strings::escapeHtml($_GET['search']) : ''); if (($search != '') && !empty($_GET['submit'])) { $a->internalRedirect('search?search=' . urlencode($search)); } - if (x($_GET, 'save')) { + if (!empty($_GET['save'])) { $exists = DBA::exists('search', ['uid' => local_user(), 'term' => $search]); if (!$exists) { DBA::insert('search', ['uid' => local_user(), 'term' => $search]); } } - if (x($_GET, 'remove')) { + if (!empty($_GET['remove'])) { DBA::delete('search', ['uid' => local_user(), 'term' => $search]); } @@ -63,9 +59,9 @@ function network_init(App $a) $group_id = (($a->argc > 1 && is_numeric($a->argv[1])) ? intval($a->argv[1]) : 0); $cid = 0; - if (x($_GET, 'cid') && intval($_GET['cid']) != 0) { + if (!empty($_GET['cid'])) { $cid = $_GET['cid']; - $_GET['nets'] = 'all'; + $_GET['nets'] = ''; $group_id = 0; } @@ -86,7 +82,7 @@ function network_init(App $a) // fetch last used network view and redirect if needed if (!$is_a_date_query) { - $sel_nets = defaults($_GET, 'nets', false); + $sel_nets = defaults($_GET, 'nets', ''); $sel_tabs = network_query_get_sel_tab($a); $sel_groups = network_query_get_sel_group($a); $last_sel_tabs = PConfig::get(local_user(), 'network.view', 'tab.selected'); @@ -137,7 +133,7 @@ function network_init(App $a) } } - if ($sel_nets !== false) { + if ($sel_nets) { $net_args['nets'] = $sel_nets; } @@ -151,45 +147,31 @@ function network_init(App $a) } } - // If nets is set to all, unset it - if (x($_GET, 'nets') && $_GET['nets'] === 'all') { - unset($_GET['nets']); - } - - if (!x($a->page, 'aside')) { + if (empty($a->page['aside'])) { $a->page['aside'] = ''; } - $a->page['aside'] .= (Feature::isEnabled(local_user(), 'groups') ? - Group::sidebarWidget('network/0', 'network', 'standard', $group_id) : ''); - $a->page['aside'] .= (Feature::isEnabled(local_user(), 'forumlist_widget') ? ForumManager::widget(local_user(), $cid) : ''); + $a->page['aside'] .= Group::sidebarWidget('network/0', 'network', 'standard', $group_id); + $a->page['aside'] .= ForumManager::widget(local_user(), $cid); $a->page['aside'] .= posted_date_widget('network', local_user(), false); - $a->page['aside'] .= Widget::networks('network', (x($_GET, 'nets') ? $_GET['nets'] : '')); + $a->page['aside'] .= Widget::networks('network', defaults($_GET, 'nets', '') ); $a->page['aside'] .= saved_searches($search); - $a->page['aside'] .= Widget::fileAs('network', (x($_GET, 'file') ? $_GET['file'] : '')); + $a->page['aside'] .= Widget::fileAs('network', defaults($_GET, 'file', '') ); } function saved_searches($search) { - if (!Feature::isEnabled(local_user(), 'savedsearch')) { - return ''; - } - - $a = get_app(); - $srchurl = '/network?f=' - . ((x($_GET, 'cid')) ? '&cid=' . $_GET['cid'] : '') - . ((x($_GET, 'star')) ? '&star=' . $_GET['star'] : '') - . ((x($_GET, 'bmark')) ? '&bmark=' . $_GET['bmark'] : '') - . ((x($_GET, 'conv')) ? '&conv=' . $_GET['conv'] : '') - . ((x($_GET, 'nets')) ? '&nets=' . $_GET['nets'] : '') - . ((x($_GET, 'cmin')) ? '&cmin=' . $_GET['cmin'] : '') - . ((x($_GET, 'cmax')) ? '&cmax=' . $_GET['cmax'] : '') - . ((x($_GET, 'file')) ? '&file=' . $_GET['file'] : ''); + . (!empty($_GET['cid']) ? '&cid=' . rawurlencode($_GET['cid']) : '') + . (!empty($_GET['star']) ? '&star=' . rawurlencode($_GET['star']) : '') + . (!empty($_GET['bmark']) ? '&bmark=' . rawurlencode($_GET['bmark']) : '') + . (!empty($_GET['conv']) ? '&conv=' . rawurlencode($_GET['conv']) : '') + . (!empty($_GET['nets']) ? '&nets=' . rawurlencode($_GET['nets']) : '') + . (!empty($_GET['cmin']) ? '&cmin=' . rawurlencode($_GET['cmin']) : '') + . (!empty($_GET['cmax']) ? '&cmax=' . rawurlencode($_GET['cmax']) : '') + . (!empty($_GET['file']) ? '&file=' . rawurlencode($_GET['file']) : ''); ; - $o = ''; - $terms = DBA::select('search', ['id', 'term'], ['uid' => local_user()]); $saved = []; @@ -207,7 +189,7 @@ function saved_searches($search) $o = Renderer::replaceMacros($tpl, [ '$title' => L10n::t('Saved Searches'), '$add' => L10n::t('add'), - '$searchbox' => HTML::search($search, 'netsearch-box', $srchurl, true), + '$searchbox' => HTML::search($search, 'netsearch-box', $srchurl), '$saved' => $saved, ]); @@ -218,15 +200,16 @@ function saved_searches($search) * Return selected tab from query * * urls -> returns - * '/network' => $no_active = 'active' - * '/network?f=&order=comment' => $comment_active = 'active' - * '/network?f=&order=post' => $postord_active = 'active' - * '/network?f=&conv=1', => $conv_active = 'active' - * '/network/new', => $new_active = 'active' - * '/network?f=&star=1', => $starred_active = 'active' - * '/network?f=&bmark=1', => $bookmarked_active = 'active' + * '/network' => $no_active = 'active' + * '/network?f=&order=comment' => $comment_active = 'active' + * '/network?f=&order=post' => $postord_active = 'active' + * '/network?f=&conv=1', => $conv_active = 'active' + * '/network/new', => $new_active = 'active' + * '/network?f=&star=1', => $starred_active = 'active' + * '/network?f=&bmark=1', => $bookmarked_active = 'active' * - * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active); + * @param App $a + * @return array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active); */ function network_query_get_sel_tab(App $a) { @@ -242,15 +225,15 @@ function network_query_get_sel_tab(App $a) $new_active = 'active'; } - if (x($_GET, 'star')) { + if (!empty($_GET['star'])) { $starred_active = 'active'; } - if (x($_GET, 'bmark')) { + if (!empty($_GET['bmark'])) { $bookmarked_active = 'active'; } - if (x($_GET, 'conv')) { + if (!empty($_GET['conv'])) { $conv_active = 'active'; } @@ -258,7 +241,7 @@ function network_query_get_sel_tab(App $a) $no_active = 'active'; } - if ($no_active == 'active' && x($_GET, 'order')) { + if ($no_active == 'active' && !empty($_GET['order'])) { switch($_GET['order']) { case 'post' : $postord_active = 'active'; $no_active=''; break; case 'comment' : $all_active = 'active'; $no_active=''; break; @@ -282,9 +265,11 @@ function network_query_get_sel_group(App $a) /** * @brief Sets the pager data and returns SQL * - * @param App $a The global App + * @param App $a The global App + * @param Pager $pager * @param integer $update Used for the automatic reloading * @return string SQL with the appropriate LIMIT clause + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ function networkPager(App $a, Pager $pager, $update) { @@ -318,6 +303,7 @@ function networkPager(App $a, Pager $pager, $update) * @brief Sets items as seen * * @param array $condition The array with the SQL condition + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ function networkSetSeen($condition) { @@ -328,7 +314,7 @@ function networkSetSeen($condition) $unseen = Item::exists($condition); if ($unseen) { - $r = Item::update(['unseen' => false], $condition); + Item::update(['unseen' => false], $condition); } } @@ -337,15 +323,24 @@ function networkSetSeen($condition) * * @param App $a The global App * @param array $items Items of the conversation + * @param Pager $pager * @param string $mode Display mode for the conversation * @param integer $update Used for the automatic reloading + * @param string $ordering * @return string HTML of the conversation + * @throws ImagickException + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ function networkConversation(App $a, $items, Pager $pager, $mode, $update, $ordering = '') { // Set this so that the conversation function can find out contact info for our wall-wall items $a->page_contact = $a->contact; + if (!is_array($items)) { + Logger::log("Expecting items to be an array. Got " . print_r($items, true)); + $items = []; + } + $o = conversation($a, $items, $pager, $mode, $update, false, $ordering, local_user()); if (!$update) { @@ -367,7 +362,7 @@ function network_content(App $a, $update = 0, $parent = 0) /// @TODO Is this really necessary? $a is already available to hooks $arr = ['query' => $a->query_string]; - Addon::callHooks('network_content_init', $arr); + Hook::callAll('network_content_init', $arr); $flat_mode = false; @@ -389,16 +384,22 @@ function network_content(App $a, $update = 0, $parent = 0) $o = networkThreadedView($a, $update, $parent); } + if ($o === '') { + info("No items found"); + } + return $o; } /** * @brief Get the network content in flat view * - * @param Pager $pager * @param App $a The global App * @param integer $update Used for the automatic reloading * @return string HTML of the network content in flat view + * @throws ImagickException + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @global Pager $pager */ function networkFlatView(App $a, $update = 0) { @@ -406,12 +407,6 @@ function networkFlatView(App $a, $update = 0) // Rawmode is used for fetching new content at the end of the page $rawmode = (isset($_GET['mode']) && ($_GET['mode'] == 'raw')); - if (isset($_GET['last_id'])) { - $last_id = intval($_GET['last_id']); - } else { - $last_id = 0; - } - $o = ''; $file = defaults($_GET, 'file', ''); @@ -448,14 +443,13 @@ function networkFlatView(App $a, $update = 0) $pager = new Pager($a->query_string); - /// @TODO Figure out why this variable is unused - $pager_sql = networkPager($a, $pager, $update); + networkPager($a, $pager, $update); if (strlen($file)) { $condition = ["`term` = ? AND `otype` = ? AND `type` = ? AND `uid` = ?", $file, TERM_OBJ_POST, TERM_FILE, local_user()]; $params = ['order' => ['tid' => true], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]; - $result = DBA::select('term', ['oid'], $condition); + $result = DBA::select('term', ['oid'], $condition, $params); $posts = []; while ($term = DBA::fetch($result)) { @@ -463,6 +457,9 @@ function networkFlatView(App $a, $update = 0) } DBA::close($result); + if (count($posts) == 0) { + return ''; + } $condition = ['uid' => local_user(), 'id' => $posts]; } else { $condition = ['uid' => local_user()]; @@ -483,11 +480,13 @@ function networkFlatView(App $a, $update = 0) /** * @brief Get the network content in threaded view * - * @global Pager $pager * @param App $a The global App * @param integer $update Used for the automatic reloading * @param integer $parent * @return string HTML of the network content in flat view + * @throws ImagickException + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @global Pager $pager */ function networkThreadedView(App $a, $update, $parent) { @@ -615,7 +614,6 @@ function networkThreadedView(App $a, $update, $parent) $sql_extra3 = ''; $sql_table = '`thread`'; $sql_parent = '`iid`'; - $sql_order = ''; if ($update) { $sql_table = '`item`'; @@ -630,7 +628,7 @@ function networkThreadedView(App $a, $update, $parent) $group = DBA::selectFirst('group', ['name'], ['id' => $gid, 'uid' => local_user()]); if (!DBA::isResult($group)) { if ($update) { - killme(); + exit(); } notice(L10n::t('No such group') . EOL); $a->internalRedirect('network/0'); @@ -669,7 +667,7 @@ function networkThreadedView(App $a, $update, $parent) $entries[0] = [ 'id' => 'network', - 'name' => htmlentities($contact['name']), + 'name' => $contact['name'], 'itemurl' => defaults($contact, 'addr', $contact['nurl']), 'thumb' => ProxyUtils::proxifyUrl($contact['thumb'], false, ProxyUtils::SIZE_THUMB), 'details' => $contact['location'], @@ -911,7 +909,7 @@ function networkThreadedView(App $a, $update, $parent) $parents_str = implode(', ', $parents_arr); } - if (x($_GET, 'offset')) { + if (!empty($_GET['offset'])) { $date_offset = $_GET['offset']; } @@ -946,6 +944,7 @@ function networkThreadedView(App $a, $update, $parent) * * @param App $a The global App * @return string Html of the networktab + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ function network_tabs(App $a) { @@ -965,7 +964,7 @@ function network_tabs(App $a) $tabs = [ [ 'label' => L10n::t('Commented Order'), - 'url' => str_replace('/new', '', $cmd) . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), + 'url' => str_replace('/new', '', $cmd) . '?f=&order=comment' . (!empty($_GET['cid']) ? '&cid=' . $_GET['cid'] : ''), 'sel' => $all_active, 'title' => L10n::t('Sort by Comment Date'), 'id' => 'commented-order-tab', @@ -973,7 +972,7 @@ function network_tabs(App $a) ], [ 'label' => L10n::t('Posted Order'), - 'url' => str_replace('/new', '', $cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), + 'url' => str_replace('/new', '', $cmd) . '?f=&order=post' . (!empty($_GET['cid']) ? '&cid=' . $_GET['cid'] : ''), 'sel' => $postord_active, 'title' => L10n::t('Sort by Post Date'), 'id' => 'posted-order-tab', @@ -981,21 +980,19 @@ function network_tabs(App $a) ], ]; - if (Feature::isEnabled(local_user(), 'personal_tab')) { - $tabs[] = [ - 'label' => L10n::t('Personal'), - 'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&conv=1', - 'sel' => $conv_active, - 'title' => L10n::t('Posts that mention or involve you'), - 'id' => 'personal-tab', - 'accesskey' => 'r', - ]; - } + $tabs[] = [ + 'label' => L10n::t('Personal'), + 'url' => str_replace('/new', '', $cmd) . (!empty($_GET['cid']) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&conv=1', + 'sel' => $conv_active, + 'title' => L10n::t('Posts that mention or involve you'), + 'id' => 'personal-tab', + 'accesskey' => 'r', + ]; if (Feature::isEnabled(local_user(), 'new_tab')) { $tabs[] = [ 'label' => L10n::t('New'), - 'url' => 'network/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''), + 'url' => 'network/new' . (!empty($_GET['cid']) ? '/?f=&cid=' . $_GET['cid'] : ''), 'sel' => $new_active, 'title' => L10n::t('Activity Stream - by date'), 'id' => 'activitiy-by-date-tab', @@ -1006,7 +1003,7 @@ function network_tabs(App $a) if (Feature::isEnabled(local_user(), 'link_tab')) { $tabs[] = [ 'label' => L10n::t('Shared Links'), - 'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&bmark=1', + 'url' => str_replace('/new', '', $cmd) . (!empty($_GET['cid']) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&bmark=1', 'sel' => $bookmarked_active, 'title' => L10n::t('Interesting Links'), 'id' => 'shared-links-tab', @@ -1014,26 +1011,24 @@ function network_tabs(App $a) ]; } - if (Feature::isEnabled(local_user(), 'star_posts')) { - $tabs[] = [ - 'label' => L10n::t('Starred'), - 'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&star=1', - 'sel' => $starred_active, - 'title' => L10n::t('Favourite Posts'), - 'id' => 'starred-posts-tab', - 'accesskey' => 'm', - ]; - } + $tabs[] = [ + 'label' => L10n::t('Starred'), + 'url' => str_replace('/new', '', $cmd) . (!empty($_GET['cid']) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&star=1', + 'sel' => $starred_active, + 'title' => L10n::t('Favourite Posts'), + 'id' => 'starred-posts-tab', + 'accesskey' => 'm', + ]; // save selected tab, but only if not in file mode - if (!x($_GET, 'file')) { + if (empty($_GET['file'])) { PConfig::set(local_user(), 'network.view', 'tab.selected', [ $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active ]); } $arr = ['tabs' => $tabs]; - Addon::callHooks('network_tabs', $arr); + Hook::callAll('network_tabs', $arr); $tpl = Renderer::getMarkupTemplate('common_tabs.tpl'); @@ -1049,13 +1044,17 @@ function network_tabs(App $a) * of the page to make the correct asynchronous call. This is obtained through the Pager that was instantiated in * networkThreadedView or networkFlatView. * - * @global Pager $pager - * @param App $a + * @param App $a * @param string $htmlhead The head tag HTML string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @global Pager $pager */ function network_infinite_scroll_head(App $a, &$htmlhead) { /// @TODO this will have to be converted to a static property of the converted Module\Network class + /** + * @var $pager Pager + */ global $pager; if (PConfig::get(local_user(), 'system', 'infinite_scroll') @@ -1067,4 +1066,4 @@ function network_infinite_scroll_head(App $a, &$htmlhead) '$reload_uri' => $pager->getBaseQueryString() ]); } -} \ No newline at end of file +}