]> git.mxchange.org Git - friendica.git/commitdiff
Show conversations in network default view ordered by activity
authorFabio Comuni <fabrix.xm@gmail.com>
Thu, 8 Sep 2011 09:18:44 +0000 (11:18 +0200)
committerFabio Comuni <fabrix.xm@gmail.com>
Thu, 8 Sep 2011 09:18:44 +0000 (11:18 +0200)
mod/network.php

index 624fb8793f1e8c95facd37c58269ff29a8756834..7d2f48d0c5544915c969c084e68aa7ef178f0f9a 100644 (file)
@@ -311,21 +311,29 @@ function network_content(&$a, $update = 0) {
        else {
 
                // Normal conversation view
+               // Show conversation by activity date
+               
+               
                // First fetch a known number of parent items
 
                $r = q("SELECT `item`.`id` 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
+                       , (SELECT `_com`.`parent`,max(`_com`.`created`) as `created`
+                               FROM `item` AS `_com` 
+                               WHERE `_com`.`uid`=%d AND `_com`.`parent`!=`id` 
+                               GROUP BY `_com`.`parent` ORDER BY `created` DESC) AS `com` 
+                       WHERE `item`.`id`=`com`.`parent` AND
+                       `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
                        AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-                       AND `item`.`parent` = `item`.`id`
+                       
                        $sql_extra
-                       ORDER BY `item`.`created` DESC LIMIT %d ,%d ",
+                       ORDER BY `com`.`created` DESC LIMIT %d ,%d ",
+                       intval(local_user()),
                        intval(local_user()),
                        intval($a->pager['start']),
                        intval($a->pager['itemspage'])
                );
 
-
                // Then fetch all the children of the parents that are on this page
 
                $parents_arr = array();
@@ -340,13 +348,18 @@ function network_content(&$a, $update = 0) {
                                `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
                                `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
                                `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
-                               FROM `item`, (SELECT `p`.`id`,`p`.`created` FROM `item` AS `p` WHERE `p`.`parent`=`p`.`id`) as `parentitem`, `contact`
+                               FROM `item`, `contact`,
+                                       (SELECT `_com`.`parent`,max(`_com`.`created`) as `created`
+                                       FROM `item` AS `_com` 
+                                       WHERE `_com`.`uid`=%d AND `_com`.`parent`!=`id` 
+                                       GROUP BY `_com`.`parent` ORDER BY `created` DESC) AS `com` 
                                WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
                                AND `contact`.`id` = `item`.`contact-id`
                                AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-                               AND `item`.`parent` = `parentitem`.`id` AND `item`.`parent` IN ( %s )
+                               AND `item`.`parent` = `com`.`parent` AND `item`.`parent` IN ( %s )
                                $sql_extra
-                               ORDER BY `parentitem`.`created`  DESC, `item`.`gravity` ASC, `item`.`created` ASC ",
+                               ORDER BY `com`.`created`  DESC, `item`.`gravity` ASC, `item`.`created` ASC ",
+                               intval(local_user()),
                                intval(local_user()),
                                dbesc($parents_str)
                        );