X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=mod%2Fnetwork.php;h=b2f6b7ba88c4e57565af039c3822dd9a02326c4d;hb=050ad68b9fc21fc5cf06153d2c6d161d30b241c6;hp=23835c8d5fd82bb11ca2f8be1329324c1180c267;hpb=69300291f03fe85502df9907014f0ad68ee07c9c;p=friendica.git diff --git a/mod/network.php b/mod/network.php index 23835c8d5f..b2f6b7ba88 100644 --- a/mod/network.php +++ b/mod/network.php @@ -103,7 +103,6 @@ function network_init(App $a) '/new', //new '', //starred '', //bookmarked - '', //spam ]; $tab_args = [ 'f=&order=comment', //all @@ -112,7 +111,6 @@ function network_init(App $a) '', //new 'f=&star=1', //starred 'f=&bmark=1', //bookmarked - 'f=&spam=1', //spam ]; $k = array_search('active', $last_sel_tabs); @@ -218,9 +216,8 @@ function saved_searches($search) * '/network/new', => $new_active = 'active' * '/network?f=&star=1', => $starred_active = 'active' * '/network?f=&bmark=1', => $bookmarked_active = 'active' - * '/network?f=&spam=1', => $spam_active = 'active' * - * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active); + * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active); */ function network_query_get_sel_tab(App $a) { @@ -230,7 +227,6 @@ function network_query_get_sel_tab(App $a) $bookmarked_active = ''; $all_active = ''; $conv_active = ''; - $spam_active = ''; $postord_active = ''; if (($a->argc > 1 && $a->argv[1] === 'new') || ($a->argc > 2 && $a->argv[2] === 'new')) { @@ -249,11 +245,7 @@ function network_query_get_sel_tab(App $a) $conv_active = 'active'; } - if (x($_GET, 'spam')) { - $spam_active = 'active'; - } - - if (($new_active == '') && ($starred_active == '') && ($bookmarked_active == '') && ($conv_active == '') && ($spam_active == '')) { + if (($new_active == '') && ($starred_active == '') && ($bookmarked_active == '') && ($conv_active == '')) { $no_active = 'active'; } @@ -264,7 +256,7 @@ function network_query_get_sel_tab(App $a) } } - return [$no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active]; + return [$no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active]; } function network_query_get_sel_group(App $a) @@ -368,21 +360,21 @@ function network_content(App $a, $update = 0, $parent = 0) $arr = ['query' => $a->query_string]; Addon::callHooks('network_content_init', $arr); - $nouveau = false; + $flat_mode = false; if ($a->argc > 1) { for ($x = 1; $x < $a->argc; $x ++) { if ($a->argv[$x] === 'new') { - $nouveau = true; + $flat_mode = true; } } } if (x($_GET, 'file')) { - $nouveau = true; + $flat_mode = true; } - if ($nouveau) { + if ($flat_mode) { $o = networkFlatView($a, $update); } else { $o = networkThreadedView($a, $update, $parent); @@ -401,7 +393,7 @@ function network_content(App $a, $update = 0, $parent = 0) function networkFlatView(App $a, $update = 0) { // Rawmode is used for fetching new content at the end of the page - $rawmode = (isset($_GET['mode']) AND ( $_GET['mode'] == 'raw')); + $rawmode = (isset($_GET['mode']) && ($_GET['mode'] == 'raw')); if (isset($_GET['last_id'])) { $last_id = intval($_GET['last_id']); @@ -443,28 +435,33 @@ function networkFlatView(App $a, $update = 0) } } + $pager_sql = networkPager($a, $update); + if (strlen($file)) { - $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", - dbesc(protect_sprintf($file)), intval(TERM_OBJ_POST), intval(TERM_FILE), intval(local_user())); + $condition = ["`term` = ? AND `otype` = ? AND `type` = ? AND `uid` = ?", + $file, TERM_OBJ_POST, TERM_FILE, local_user()]; + $params = ['order' => ['tid' => true], 'limit' => [$a->pager['start'], $a->pager['itemspage']]]; + $result = dba::select('term', ['oid'], $condition); + + $posts = []; + while ($term = dba::fetch($result)) { + $posts[] = $term['oid']; + } + dba::close($terms); + + $condition = ['uid' => local_user(), 'id' => $posts]; } else { - $sql_post_table = " INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent`"; + $condition = ['uid' => local_user()]; } - $pager_sql = networkPager($a, $update); - - // show all items unthreaded in reverse created date order - $items = q("SELECT %s FROM `item` $sql_post_table %s - WHERE %s AND `item`.`uid` = %d - ORDER BY `item`.`id` DESC $pager_sql ", - item_fieldlists(), item_joins(local_user()), item_condition(), - intval(local_user()) - ); + $params = ['order' => ['id' => true], 'limit' => [$a->pager['start'], $a->pager['itemspage']]]; + $result = Item::selectForUser(local_user(), [], $condition, $params); + $items = Item::inArray($result); $condition = ['unseen' => true, 'uid' => local_user()]; networkSetSeen($condition); - $mode = 'network-new'; - $o .= networkConversation($a, $items, $mode, $update); + $o .= networkConversation($a, $items, 'network-new', $update); return $o; } @@ -599,6 +596,7 @@ function networkThreadedView(App $a, $update, $parent) $sql_extra3 = ''; $sql_table = '`thread`'; $sql_parent = '`iid`'; + $sql_order = ''; if ($update) { $sql_table = '`item`'; @@ -702,9 +700,7 @@ function networkThreadedView(App $a, $update, $parent) $order_mode = 'commented'; } - if ($sql_order == '') { - $sql_order = "$sql_table.$ordering"; - } + $sql_order = "$sql_table.$ordering"; if (x($_GET, 'offset')) { $sql_range = sprintf(" AND $sql_order <= '%s'", dbesc($_GET['offset'])); @@ -759,7 +755,7 @@ function networkThreadedView(App $a, $update, $parent) // Load all unseen items $sql_extra4 = "`item`.`unseen`"; if (Config::get("system", "like_no_comment")) { - $sql_extra4 .= " AND `item`.`verb` = '".ACTIVITY_POST."'"; + $sql_extra4 .= " AND `item`.`gravity` IN (" . GRAVITY_PARENT . "," . GRAVITY_COMMENT . ")"; } if ($order === 'post') { // Only show toplevel posts when updating posts in this order mode @@ -838,7 +834,7 @@ function networkThreadedView(App $a, $update, $parent) $top_limit = DateTimeFormat::utcNow(); } - $items = dba::p("SELECT `item`.`parent-uri` AS `uri`, 0 AS `item_id`, `item`.$ordering AS `order_date` FROM `item` + $items = dba::p("SELECT `item`.`parent-uri` AS `uri`, 0 AS `item_id`, `item`.$ordering AS `order_date`, `author`.`url` AS `author-link` FROM `item` STRAIGHT_JOIN (SELECT `oid` FROM `term` WHERE `term` IN (SELECT SUBSTR(`term`, 2) FROM `search` WHERE `uid` = ? AND `term` LIKE '#%') AND `otype` = ? AND `type` = ? AND `uid` = 0) AS `term` ON `item`.`id` = `term`.`oid` @@ -928,7 +924,7 @@ function network_tabs(App $a) // item filter tabs /// @TODO fix this logic, reduce duplication /// $a->page['content'] .= '
'; - list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) = network_query_get_sel_tab($a); + list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active) = network_query_get_sel_tab($a); // if no tabs are selected, defaults to comments if ($no_active == 'active') { @@ -1004,7 +1000,7 @@ function network_tabs(App $a) // save selected tab, but only if not in file mode if (!x($_GET, 'file')) { PConfig::set(local_user(), 'network.view', 'tab.selected', [ - $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active + $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active ]); }