]> git.mxchange.org Git - friendica.git/commitdiff
The queries for items are unified (a little bit)
authorMichael Vogel <icarus@dabo.de>
Sun, 12 Jun 2016 19:04:55 +0000 (21:04 +0200)
committerMichael Vogel <icarus@dabo.de>
Sun, 12 Jun 2016 19:04:55 +0000 (21:04 +0200)
include/api.php
include/conversation.php
include/dfrn.php
index.php
mod/community.php
mod/content.php
mod/display.php
mod/network.php
mod/notes.php
mod/profile.php
mod/search.php

index f32dc97c6c4fc5516cb72ad08a12a42766410bef..c86a3cbe4bc3295cee41b37c79643a90c12e7d1f 100644 (file)
                $r = q("SELECT STRAIGHT_JOIN `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
                        `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
                        `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       `contact`.`id` AS `cid`
                        FROM `item`, `contact`
                        WHERE `item`.`uid` = %d AND `verb` = '%s'
                        AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
                $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`, `contact`.`uid` AS `contact-uid`,
+                       `contact`.`id` AS `cid`,
                        `user`.`nickname`, `user`.`hidewall`
                        FROM `item` STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid`
                $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`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       `contact`.`id` AS `cid`
                        FROM `item`, `contact`
                        WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
                        AND `contact`.`id` = `item`.`contact-id` AND `item`.`uid` = %d AND `item`.`verb` = '%s'
                $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`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       `contact`.`id` AS `cid`
                        FROM `item`
                        INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        WHERE `item`.`parent` = %d AND `item`.`visible`
                $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`nick` as `reply_author`,
                        `contact`.`name`, `contact`.`photo` as `reply_photo`, `contact`.`url` as `reply_url`, `contact`.`rel`,
                        `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       `contact`.`id` AS `cid`
                        FROM `item`, `contact`
                        WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
                        AND `contact`.`id` = `item`.`contact-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`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       `contact`.`id` AS `cid`
                        FROM `item`  FORCE INDEX (`uid_id`), `contact`
                        WHERE `item`.`uid` = %d AND `verb` = '%s'
                        AND NOT (`item`.`author-link` IN ('https://%s', 'http://%s'))
                $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`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       `contact`.`id` AS `cid`
                        FROM `item`, `contact`
                        WHERE `item`.`uid` = %d AND `verb` = '%s'
                        AND `item`.`contact-id` = %d
                        $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`.`dfrn-id`, `contact`.`self`,
-                               `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                               `contact`.`id` AS `cid`
                                FROM `item`, `contact`
                                WHERE `item`.`uid` = %d
                                AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
index 38f6e76862c5a4bad2faea85b8006ff86bc9ac65..ac0bd69e4ce109fbc7f6205291988f4a5dab72e5 100644 (file)
@@ -373,6 +373,55 @@ function visible_activity($item) {
        return true;
 }
 
+/**
+ * @brief List of all contact fields that are needed for the conversation function
+ */
+function contact_fieldlist() {
+
+       $fieldlist = "`contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`,
+                       `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`";
+
+       return $fieldlist;
+}
+
+/**
+ * @brief SQL condition for contacts
+ */
+function contact_condition() {
+
+       $condition = "NOT `contact`.`blocked` AND NOT `contact`.`pending`";
+
+       return $condition;
+}
+
+/**
+ * @brief SQL condition for items
+ */
+function item_condition() {
+
+       $condition = "`item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`";
+
+       return $condition;
+}
+
+/**
+ * @brief List of all item fields that are needed for the conversation function
+ */
+function item_fieldlist() {
+
+       $fieldlist = "`item`.`author-link`, `item`.`verb`, `item`.`id`, `item`.`parent`,
+                       `item`.`uid`, `item`.`author-name`, `item`.`tag`, `item`.`location`, `item`.`coord`,
+                       `item`.`title`, `item`.`uri`, `item`.`created`, `item`.`app`, `item`.`guid`,
+                       `item`.`contact-id`, `item`.`thr-parent`, `item`.`parent-uri`, `item`.`rendered-hash`,
+                       `item`.`body`, `item`.`rendered-html`, `item`.`private`, `item`.`edited`,
+                       `item`.`allow_cid`, `item`.`allow_gid`, `item`.`deny_cid`, `item`.`deny_gid`,
+                       `item`.`event-id`, `item`.`object-type`, `item`.`starred`, `item`.`created`,
+                       `item`.`postopts`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
+                       `item`.`plink`, `item`.`wall`,
+                       `item`.`id` AS `item_id`, `item`.`network` AS `item_network`";
+
+       return $fieldlist;
+}
 
 /**
  * "Render" a conversation or list of items for HTML display.
index a974056e655fe6906a722d12bd51c9187c32675e..2dca1522c62da7b10af55c49c47de5c44111f7fd 100644 (file)
@@ -197,7 +197,6 @@ class dfrn {
                        `contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`,
                        `contact`.`name-date`, `contact`.`uri-date`, `contact`.`avatar-date`,
                        `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `contact-id`, `contact`.`uid` AS `contact-uid`,
                        `sign`.`signed_text`, `sign`.`signature`, `sign`.`signer`
                        FROM `item` $sql_post_table
                        INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
index bf4ee378af840ccb0810f7cfa686921a251863ba..943763a5110ce54c6dc9543ee2b0615e33ed523a 100644 (file)
--- a/index.php
+++ b/index.php
@@ -114,7 +114,9 @@ load_translation_table($lang);
  *
  */
 
+$stamp1 = microtime(true);
 session_start();
+$a->save_timestamp($stamp1, "parser");
 
 /**
  * Language was set earlier, but we can over-ride it in the session.
index b6d72a35555a64f375b1402fc3188c93357c3579..a83bd39ec247ac4824b2f37a300623e99e0efda0 100644 (file)
@@ -120,23 +120,20 @@ function community_getitems($start, $itemspage) {
        if (get_config('system','community_page_style') == CP_GLOBAL_COMMUNITY)
                return(community_getpublicitems($start, $itemspage));
 
-       $r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
-               `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
-               `user`.`nickname`, `user`.`hidewall`
+       $r = q("SELECT %s, %s, `user`.`nickname`
                FROM `thread` FORCE INDEX (`wall_private_received`)
-               INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND `user`.`hidewall` = 0
+               INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall`
                INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
                AND `item`.`allow_cid` = ''  AND `item`.`allow_gid` = ''
                AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = ''
                INNER JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
-               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self`
-               WHERE `thread`.`visible` = 1 AND `thread`.`deleted` = 0 and `thread`.`moderated` = 0
-               AND `thread`.`private` = 0 AND `thread`.`wall` = 1
-               ORDER BY `thread`.`received` DESC LIMIT %d, %d ",
-               intval($start),
-               intval($itemspage)
+               AND %s AND `contact`.`self`
+               WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
+               AND NOT `thread`.`private` AND `thread`.`wall`
+               ORDER BY `thread`.`received` DESC LIMIT %d, %d",
+               item_fieldlist(), contact_fieldlist(),
+               contact_condition(),
+               intval($start), intval($itemspage)
        );
 
        return($r);
@@ -144,14 +141,14 @@ function community_getitems($start, $itemspage) {
 }
 
 function community_getpublicitems($start, $itemspage) {
-       $r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
-                       `author-name` AS `name`, `owner-avatar` AS `photo`,
+
+       $r = q("SELECT %s, `author-name` AS `name`, `owner-avatar` AS `photo`,
                        `owner-link` AS `url`, `owner-avatar` AS `thumb`
                FROM `thread`
                INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
                WHERE `thread`.`uid` = 0
                ORDER BY `thread`.`created` DESC LIMIT %d, %d",
-               intval($start),
+               item_fieldlist(), intval($start),
                intval($itemspage)
        );
 
index 1f373b80eb4c9e00e1f940798ddd008213c700ef..54d499d4019dba4c5d766e4ef2e91097d6030547 100644 (file)
@@ -217,7 +217,7 @@ function content_content(&$a, $update = 0) {
                $items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
                        `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`
+                       `contact`.`id` AS `cid`
                        FROM $sql_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        WHERE `item`.`uid` = %d AND `item`.`visible` = 1
                        AND `item`.`deleted` = 0 and `item`.`moderated` = 0
@@ -268,7 +268,7 @@ function content_content(&$a, $update = 0) {
                        $items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
                                `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`writable`,
                                `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-                               `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                               `contact`.`id` AS `cid`
                                FROM $sql_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                                WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
                                AND `item`.`moderated` = 0
index 949ba5ab46d8d3f8b3bacf19d07513ede5e193bf..4ee26b7405ad48a3b9aebcd58e73cbdceae31d0c 100644 (file)
@@ -362,17 +362,14 @@ function display_content(&$a, $update = 0) {
                        return '';
        }
 
-       $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`, `contact`.`uid` AS `contact-uid`
-               FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-               AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
-               WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`deleted`
-               AND NOT `item`.`moderated`
+       $r = q("SELECT %s, %s FROM `item`
+               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+               WHERE %s AND `item`.`uid` = %d
                AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `id` = %d)
                $sql_extra
                ORDER BY `parent` DESC, `gravity` ASC, `id` ASC",
+               item_fieldlist(), contact_fieldlist(),
+               contact_condition(), item_condition(),
                intval($a->profile['uid']),
                intval($item_id)
        );
@@ -388,16 +385,13 @@ function display_content(&$a, $update = 0) {
                if($r) {
                        $item_uri = $r[0]['uri'];
 
-                       $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`, `contact`.`uid` AS `contact-uid`
-                               FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-                               AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
-                               WHERE `item`.`uid` = %d AND `item`.`visible` AND NOT `item`.`deleted`
-                               AND NOT `item`.`moderated`
+                       $r = q("SELECT %s, %s FROM `item`
+                               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                               WHERE %s AND `item`.`uid` = %d
                                AND `item`.`parent` = (SELECT `parent` FROM `item` WHERE `uri` = '%s' AND uid = %d)
                                ORDER BY `parent` DESC, `gravity` ASC, `id` ASC ",
+                               item_fieldlist(), contact_fieldlist(),
+                               contact_condition(), item_condition(),
                                intval(local_user()),
                                dbesc($item_uri),
                                intval(local_user())
index 2dc63edb45812f4cd8b7c6fe4ed5b9552d282229..ba97b4a4c5017ce8a97d2c9c63fb4e82044c45a4 100644 (file)
@@ -720,17 +720,14 @@ function network_content(&$a, $update = 0) {
                        $sql_order = "`item`.`received`";
 
                // "New Item View" - show all items unthreaded in reverse created date order
-               $items = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-                       `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 $sql_table $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-                       AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-                       WHERE `item`.`uid` = %d AND `item`.`visible` = 1
-                       AND `item`.`deleted` = 0 AND `item`.`moderated` = 0
+               $items = q("SELECT %s, %s FROM $sql_table $sql_post_table
+                       INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                       WHERE %s AND `item`.`uid` = %d
                        $simple_update
                        $sql_extra $sql_nets
                        ORDER BY $sql_order DESC $pager_sql ",
+                       item_fieldlist(), contact_fieldlist(),
+                       contact_condition(), item_condition(),
                        intval($_SESSION['uid'])
                );
 
@@ -810,16 +807,13 @@ function network_content(&$a, $update = 0) {
 
                        foreach ($parents_arr AS $parents) {
 //                                     $sql_extra ORDER BY `item`.`commented` DESC LIMIT %d",
-                               $thread_items = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-                                       `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`writable`,
-                                       `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-                                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
-                                       FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-                                       AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-                                       WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
-                                       AND `item`.`moderated` = 0
+                               $thread_items = q("SELECT %s, %s FROM `item`
+                                       INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                                       WHERE %s AND `item`.`uid` = %d
                                        AND `item`.`parent` = %d
                                        ORDER BY `item`.`commented` DESC LIMIT %d",
+                                       item_fieldlist(), contact_fieldlist(),
+                                       contact_condition(), item_condition(),
                                        intval(local_user()),
                                        intval($parents),
                                        intval($max_comments + 1)
index 73c1507e3e044d8ea62538192104eafdc9d1cd0f..8d93fc13d89ffce2547b439139ccae84debf53fa 100644 (file)
@@ -69,16 +69,15 @@ function notes_content(&$a,$update = false) {
        // Construct permissions
 
        // default permissions - anonymous user
-       
+
        $sql_extra = " AND `allow_cid` = '<" . $a->contact['id'] . ">' ";
 
        $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`.`moderated` = 0 
-               AND `item`.`deleted` = 0 AND `item`.`type` = 'note'
-               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self` = 1
-               AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 0
+               FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+               WHERE %s AND `item`.`uid` = %d AND `item`.`type` = 'note'
+               AND `contact`.`self` AND `item`.`id` = `item`.`parent` AND NOT `item`.`wall`
                $sql_extra ",
+               contact_condition(), item_condition(),
                intval(local_user())
 
        );
@@ -88,14 +87,13 @@ function notes_content(&$a,$update = false) {
                $a->set_pager_itemspage(40);
        }
 
-       $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 
-               and `item`.`moderated` = 0 AND `item`.`type` = 'note'
-               AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self` = 1
-               AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 0
+       $r = q("SELECT `item`.`id` AS `item_id` FROM `item`
+               LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s AND `contact`.`self`
+               WHERE %s AND `item`.`uid` = %d AND `item`.`type` = 'note'
+               AND `item`.`id` = `item`.`parent` AND NOT `item`.`wall`
                $sql_extra
                ORDER BY `item`.`created` DESC LIMIT %d ,%d ",
+               contact_condition(), item_condition(),
                intval(local_user()),
                intval($a->pager['start']),
                intval($a->pager['itemspage'])
@@ -109,17 +107,14 @@ function notes_content(&$a,$update = false) {
                foreach($r as $rr)
                        $parents_arr[] = $rr['item_id'];
                $parents_str = implode(', ', $parents_arr);
-               $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, 
-                       `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`network`, `contact`.`rel`, 
-                       `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, 
-                       `contact`.`id` AS `cid`, `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`.`moderated` = 0 AND `item`.`deleted` = 0
-                       AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-                       AND `item`.`parent` IN ( %s )
+
+               $r = q("SELECT %s, %s FROM `item`
+                       LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                       WHERE %s AND `item`.`uid` = %d AND `item`.`parent` IN (%s)
                        $sql_extra
                        ORDER BY `parent` DESC, `gravity` ASC, `item`.`id` ASC ",
+                       item_fieldlist(), contact_fieldlist(),
+                       contact_condition(), item_condition(),
                        intval(local_user()),
                        dbesc($parents_str)
                );
index 58e3a160721cc78014f7c1f3b49c6db09fb9c3ef..88de0227b6075a8192463a49746679564ed3efaa 100644 (file)
@@ -216,8 +216,7 @@ function profile_content(&$a, $update = 0) {
 
        if($update) {
 
-               $r = q("SELECT distinct(parent) AS `item_id`, `item`.`network` AS `item_network`,
-                       `contact`.`uid` AS `contact-uid`
+               $r = q("SELECT distinct(parent) AS `item_id`, `item`.`network` AS `item_network`
                        FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
                        WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND
@@ -282,8 +281,7 @@ function profile_content(&$a, $update = 0) {
 
                $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
 
-               $r = q("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network`,
-                       `thread`.`uid` AS `contact-uid`
+               $r = q("SELECT `thread`.`iid` AS `item_id`, `thread`.`network` AS `item_network`
                        FROM `thread` FORCE INDEX (`uid_created`) INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
                        $sql_post_table INNER JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
                        AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
@@ -305,17 +303,13 @@ function profile_content(&$a, $update = 0) {
                        $parents_arr[] = $rr['item_id'];
                $parents_str = implode(', ', $parents_arr);
 
-               $items = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-                       `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`network`, `contact`.`rel`,
-                       `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
-                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
-                       FROM `item`, `contact`
-                       WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
-                       and `item`.`moderated` = 0
-                       AND `contact`.`id` = `item`.`contact-id`
-                       AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-                       AND `item`.`parent` IN ( %s )
+               $items = q("SELECT %s, %s FROM `item`
+                       INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                       WHERE %s AND `item`.`uid` = %d
+                       AND `item`.`parent` IN (%s)
                        $sql_extra ",
+                       item_fieldlist(), contact_fieldlist(),
+                       contact_condition(), item_condition(),
                        intval($a->profile['profile_uid']),
                        dbesc($parents_str)
                );
index 91c345b929c71cfa14d7cb520157780c2470516f..99ec6c5f7d2ec6336465e940d37435c0870818ff 100644 (file)
@@ -191,17 +191,16 @@ function search_content(&$a) {
        if($tag) {
                logger("Start tag search for '".$search."'", LOGGER_DEBUG);
 
-               $r = q("SELECT STRAIGHT_JOIN `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
-                               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
-                               `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
-                               `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+               $r = q("SELECT STRAIGHT_JOIN %s, %s
                        FROM `term`
                                INNER JOIN `item` ON `item`.`id`=`term`.`oid`
-                               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
-                       WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
-                               AND (`term`.`uid` = 0 OR (`term`.`uid` = %d AND NOT `term`.`global`)) AND `term`.`otype` = %d AND `term`.`type` = %d AND `term`.`term` = '%s'
+                               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                       WHERE %s AND (`term`.`uid` = 0 OR (`term`.`uid` = %d AND NOT `term`.`global`)) AND `term`.`otype` = %d AND `term`.`type` = %d AND `term`.`term` = '%s'
                        ORDER BY term.created DESC LIMIT %d , %d ",
-                               intval(local_user()), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), dbesc(protect_sprintf($search)),
+                               item_fieldlist(), contact_fieldlist(),
+                               contact_condition(), item_condition(),
+                               intval(local_user()),
+                               intval(TERM_OBJ_POST), intval(TERM_HASHTAG), dbesc(protect_sprintf($search)),
                                intval($a->pager['start']), intval($a->pager['itemspage']));
        } else {
                logger("Start fulltext search for '".$search."'", LOGGER_DEBUG);
@@ -212,17 +211,16 @@ function search_content(&$a) {
                        $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
                }
 
-               $r = q("SELECT STRAIGHT_JOIN `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
-                               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
-                               `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
-                               `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+               $r = q("SELECT STRAIGHT_JOIN %s, %s
                        FROM `item`
-                               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`
-                       WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
-                               AND (`item`.`uid` = 0 OR (`item`.`uid` = %s AND NOT `item`.`global`))
+                               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND %s
+                       WHERE %s AND (`item`.`uid` = 0 OR (`item`.`uid` = %s AND NOT `item`.`global`))
                                $sql_extra
-                       GROUP BY `item`.`uri` ORDER BY `item`.`id` DESC LIMIT %d , %d ",
-                               intval(local_user()), intval($a->pager['start']), intval($a->pager['itemspage']));
+                       GROUP BY `item`.`uri` ORDER BY `item`.`id` DESC LIMIT %d , %d",
+                               item_fieldlist(), contact_fieldlist(),
+                               contact_condition(), item_condition(),
+                               intval(local_user()),
+                               intval($a->pager['start']), intval($a->pager['itemspage']));
        }
 
        if(! count($r)) {