]> git.mxchange.org Git - friendica.git/blobdiff - mod/search.php
Fix indent in search_item.tpl
[friendica.git] / mod / search.php
index 91c345b929c71cfa14d7cb520157780c2470516f..7d588aa4d15693c12b16dad0bf61006d697223fb 100644 (file)
@@ -15,9 +15,9 @@ function search_saved_searches() {
                intval(local_user())
        );
 
-       if(count($r)) {
+       if (dbm::is_result($r)) {
                $saved = array();
-               foreach($r as $rr) {
+               foreach ($r as $rr) {
                        $saved[] = array(
                                'id'            => $rr['id'],
                                'term'          => $rr['term'],
@@ -43,7 +43,7 @@ function search_saved_searches() {
 }
 
 
-function search_init(&$a) {
+function search_init(App $a) {
 
        $search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
 
@@ -53,7 +53,7 @@ function search_init(&$a) {
                                intval(local_user()),
                                dbesc($search)
                        );
-                       if(! count($r)) {
+                       if (! dbm::is_result($r)) {
                                q("INSERT INTO `search` (`uid`,`term`) VALUES ( %d, '%s')",
                                        intval(local_user()),
                                        dbesc($search)
@@ -81,13 +81,13 @@ function search_init(&$a) {
 
 
 
-function search_post(&$a) {
+function search_post(App $a) {
        if(x($_POST,'search'))
                $a->data['search'] = $_POST['search'];
 }
 
 
-function search_content(&$a) {
+function search_content(App $a) {
 
        if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
                notice( t('Public access denied.') . EOL);
@@ -191,41 +191,36 @@ 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 %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'
+                               STRAIGHT_JOIN `item` ON `item`.`id`=`term`.`oid` %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_fieldlists(), item_joins(), 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);
 
-               if (get_config('system','use_fulltext_engine')) {
-                       $sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search)));
-               } else {
+               // Disabled until finally is decided how to proceed with this
+               //if (get_config('system','use_fulltext_engine')) {
+               //      $sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search)));
+               //} else {
                        $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`
-                       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`))
+               $r = q("SELECT %s
+                       FROM `item` %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_fieldlists(), item_joins(), item_condition(),
+                               intval(local_user()),
+                               intval($a->pager['start']), intval($a->pager['itemspage']));
        }
 
-       if(! count($r)) {
+       if (! dbm::is_result($r)) {
                info( t('No results.') . EOL);
                return $o;
        }