}
}
}
-
+
+ // convert query string to array and remove first element (wich is friendica args)
+ $query_array = array();
+ parse_str($a->query_string, $query_array);
+ array_shift($query_array);
+
// fetch last used tab and redirect if needed
$sel_tabs = network_query_get_sel_tab($a);
$last_sel_tabs = get_pconfig(local_user(), 'network.view','tab.selected');
if (is_array($last_sel_tabs)){
$tab_urls = array(
- '/network?f=&order=comment', //all
+ '/network?f=&order=comment',//all
'/network?f=&order=post', //postord
'/network?f=&conv=1', //conv
'/network/new', //new
// and this isn't a date query
if ($sel_tabs[0] == 'active' && $last_sel_tabs[0]!='active' && (! $is_a_date_query)) {
-
-
$k = array_search('active', $last_sel_tabs);
- //echo "<pre>"; var_dump($sel_tabs, $last_sel_tabs, $tab_urlsm, $k, $tab_urls[$k]); killme();
- goaway($a->get_baseurl() . $tab_urls[$k]);
+
+ // merge tab querystring with request querystring
+ $dest_qa = array();
+ list($dest_url,$dest_qs) = explode("?", $tab_urls[$k]);
+ parse_str( $dest_qs, $dest_qa);
+ $dest_qa = array_merge($query_array, $dest_qa);
+ $dest_qs = build_querystring($dest_qa);
+
+ // groups filter is in form of "network/nnn". Add it to $dest_url, if it's possible
+ if ($a->argc==2 && is_numeric($a->argv[1]) && strpos($dest_url, "/",1)===false){
+ $dest_url .= "/".$a->argv[1];
+ }
+
+ goaway($a->get_baseurl() . $dest_url."?".$dest_qs);
}
}
}
else {
- $r = q("SELECT COUNT(*) AS `total`
- FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra2 $sql_extra3
- $sql_extra $sql_nets ",
- intval($_SESSION['uid'])
- );
-
- if(count($r)) {
- $a->set_pager_total($r[0]['total']);
- $itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
- $a->set_pager_itemspage(((intval($itemspage_network)) ? $itemspage_network : 40));
- }
- $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
+ if(! get_pconfig(local_user(),'system','alt_pager')) {
+ $r = q("SELECT COUNT(*) AS `total`
+ FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
+ WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
+ AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+ $sql_extra2 $sql_extra3
+ $sql_extra $sql_nets ",
+ intval($_SESSION['uid'])
+ );
+
+ if(count($r)) {
+ $a->set_pager_total($r[0]['total']);
+ }
+ }
+ $itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
+ $a->set_pager_itemspage(((intval($itemspage_network)) ? $itemspage_network : 40));
+ $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
}
$simple_update = (($update) ? " and `item`.`unseen` = 1 " : '');
if($update) {
$r = q("SELECT `parent` AS `item_id`, `contact`.`uid` AS `contact_uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
- WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
+ WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND
+ (`item`.`deleted` = 0 OR item.verb = '" . ACTIVITY_LIKE ."' OR item.verb = '" . ACTIVITY_DISLIKE . "')
and `item`.`moderated` = 0 and `item`.`unseen` = 1
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra3 $sql_extra $sql_nets ",
$o .= conversation($a,$items,$mode,$update);
if(! $update) {
- $o .= paginate($a);
+ if(! get_pconfig(local_user(),'system','alt_pager')) {
+ $o .= paginate($a);
+ }
+ else {
+ $o .= alt_pager($a,count($items));
+ }
}
return $o;