$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);
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']);
}
}
+ $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;
}
$sql_extra3 = '';
$sql_table = '`thread`';
$sql_parent = '`iid`';
+ $sql_order = '';
if ($update) {
$sql_table = '`item`';
$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']));
// 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
$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`