]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #4091 from MrPetovan/task/4090-add-module-class-routing
authorMichael Vogel <icarus@dabo.de>
Sun, 17 Dec 2017 19:39:29 +0000 (20:39 +0100)
committerGitHub <noreply@github.com>
Sun, 17 Dec 2017 19:39:29 +0000 (20:39 +0100)
Add module class routing

database.sql
include/api.php

index 1ff7706410f6351d061f7502f3bd52001a92c6d8..f8ed2e5c155e1bc2a6973f83c5155a0973cad746 100644 (file)
@@ -1,6 +1,6 @@
 -- ------------------------------------------
 -- Friendica 3.6-dev (Asparagus)
--- DB_UPDATE_VERSION 1236
+-- DB_UPDATE_VERSION 1237
 -- ------------------------------------------
 
 
@@ -374,13 +374,11 @@ CREATE TABLE IF NOT EXISTS `group` (
 --
 CREATE TABLE IF NOT EXISTS `group_member` (
        `id` int(10) unsigned NOT NULL auto_increment,
-       `uid` int(10) unsigned NOT NULL DEFAULT 0,
        `gid` int(10) unsigned NOT NULL DEFAULT 0,
        `contact-id` int(10) unsigned NOT NULL DEFAULT 0,
         PRIMARY KEY(`id`),
         INDEX `contactid` (`contact-id`),
-        INDEX `gid_contactid` (`gid`,`contact-id`),
-        UNIQUE INDEX `uid_gid_contactid` (`uid`,`gid`,`contact-id`)
+        UNIQUE INDEX `gid_contactid` (`gid`,`contact-id`)
 ) DEFAULT COLLATE utf8mb4_general_ci;
 
 --
index c08ba7b3da3e6dc0c3f3053858bf515adc895fdb..2aa8fc645cf1816a24dcbd5d9ce36c1405e15dd1 100644 (file)
@@ -1612,39 +1612,61 @@ function api_statuses_public_timeline($type)
 
        $start = $page * $count;
 
-       if ($max_id > 0) {
-               $sql_extra = 'AND `item`.`id` <= ' . intval($max_id);
-       }
-       if ($exclude_replies > 0) {
-               $sql_extra .= ' AND `item`.`parent` = `item`.`id`';
-       }
-       if ($conversation_id > 0) {
-               $sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
-       }
+       if ($exclude_replies && !$conversation_id) {
+               if ($max_id > 0) {
+                       $sql_extra = 'AND `thread`.`iid` <= ' . intval($max_id);
+               }
 
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
-               `contact`.`id` AS `cid`,
-               `user`.`nickname`, `user`.`hidewall`
-               FROM `item`
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
-                       AND (NOT `contact`.`blocked` OR `contact`.`pending`)
-               STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid`
-                       AND NOT `user`.`hidewall`
-               WHERE `verb` = '%s' AND `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
-               AND `item`.`allow_cid` = ''  AND `item`.`allow_gid` = ''
-               AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = ''
-               AND NOT `item`.`private` AND `item`.`wall`
-               $sql_extra
-               AND `item`.`id`>%d
-               ORDER BY `item`.`id` DESC LIMIT %d, %d ",
-               dbesc(ACTIVITY_POST),
-               intval($since_id),
-               intval($start),
-               intval($count)
-       );
+               $r = dba::p("SELECT " . item_fieldlists() . "
+                       FROM `thread`
+                       STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid`
+                       " . item_joins() . "
+                       STRAIGHT_JOIN `user` ON `user`.`uid` = `thread`.`uid`
+                               AND NOT `user`.`hidewall`
+                       AND `verb` = ?
+                       AND NOT `thread`.`private`
+                       AND `thread`.`wall`
+                       AND `thread`.`visible`
+                       AND NOT `thread`.`deleted`
+                       AND NOT `thread`.`moderated`
+                       AND `thread`.`iid` > ?
+                       $sql_extra
+                       ORDER BY `thread`.`iid` DESC
+                       LIMIT " . intval($start) . ", " . intval($count),
+                       ACTIVITY_POST,
+                       $since_id
+               );
+
+               $r = dba::inArray($r);
+       } else {
+               if ($max_id > 0) {
+                       $sql_extra = 'AND `item`.`id` <= ' . intval($max_id);
+               }
+               if ($conversation_id > 0) {
+                       $sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
+               }
+
+               $r = dba::p("SELECT " . item_fieldlists() . "
+                       FROM `item`
+                       " . item_joins() . "
+                       STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid`
+                               AND NOT `user`.`hidewall`
+                       AND `verb` = ?
+                       AND NOT `item`.`private`
+                       AND `item`.`wall`
+                       AND `item`.`visible`
+                       AND NOT `item`.`deleted`
+                       AND NOT `item`.`moderated`
+                       AND `item`.`id` > ?
+                       $sql_extra
+                       ORDER BY `item`.`id` DESC
+                       LIMIT " . intval($start) . ", " . intval($count),
+                       ACTIVITY_POST,
+                       $since_id
+               );
+
+               $r = dba::inArray($r);
+       }
 
        $ret = api_format_items($r, $user_info, false, $type);
 
@@ -1697,11 +1719,15 @@ function api_statuses_networkpublic_timeline($type)
 
        $r = dba::p("SELECT " . item_fieldlists() . "
                FROM `thread`
-               INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
+               STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid`
                " . item_joins() . "
                WHERE `thread`.`uid` = 0
                AND `verb` = ?
-               AND `item`.`id` > ?
+               AND NOT `thread`.`private`
+               AND `thread`.`visible`
+               AND NOT `thread`.`deleted`
+               AND NOT `thread`.`moderated`
+               AND `thread`.`iid` > ?
                $sql_extra
                ORDER BY `thread`.`iid` DESC
                LIMIT " . intval($start) . ", " . intval($count),