mirror of
https://github.com/friendica/friendica
synced 2024-11-10 07:02:54 +00:00
Search is now changed as well.
This commit is contained in:
parent
4d4cce4867
commit
c1d9c29eea
1 changed files with 24 additions and 23 deletions
|
@ -10,6 +10,7 @@ use Friendica\Core\Config;
|
|||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBM;
|
||||
use Friendica\Model\Item;
|
||||
|
||||
require_once 'include/security.php';
|
||||
require_once 'include/conversation.php';
|
||||
|
@ -197,34 +198,34 @@ function search_content(App $a) {
|
|||
if ($tag) {
|
||||
logger("Start tag search for '".$search."'", LOGGER_DEBUG);
|
||||
|
||||
$r = q("SELECT %s
|
||||
FROM `term`
|
||||
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' AND `item`.`verb` = '%s'
|
||||
AND NOT `author`.`blocked` AND NOT `author`.`hidden`
|
||||
ORDER BY term.created DESC LIMIT %d , %d ",
|
||||
item_fieldlists(), item_joins(local_user()), item_condition(),
|
||||
intval(local_user()),
|
||||
intval(TERM_OBJ_POST), intval(TERM_HASHTAG), dbesc(protect_sprintf($search)), dbesc(ACTIVITY_POST),
|
||||
intval($a->pager['start']), intval($a->pager['itemspage']));
|
||||
$condition = ["(`uid` = 0 OR (`uid` = ? AND NOT `global`))
|
||||
AND `otype` = ? AND `type` = ? AND `term` = ?",
|
||||
local_user(), TERM_OBJ_POST, TERM_HASHTAG, $search];
|
||||
$params = ['order' => ['created' => true],
|
||||
'limit' => [$a->pager['start'], $a->pager['itemspage']]];
|
||||
$terms = dba::select('term', ['oid'], $condition, $params);
|
||||
|
||||
$itemids = [];
|
||||
while ($term = dba::fetch($terms)) {
|
||||
$itemids[] = $term['oid'];
|
||||
}
|
||||
dba::close($terms);
|
||||
|
||||
$items = Item::select(local_user(), [], ['id' => array_reverse($itemids)]);
|
||||
$r = dba::inArray($items);
|
||||
} else {
|
||||
logger("Start fulltext search for '".$search."'", LOGGER_DEBUG);
|
||||
|
||||
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
|
||||
|
||||
$r = q("SELECT %s
|
||||
FROM `item` %s
|
||||
WHERE %s AND (`item`.`uid` = 0 OR (`item`.`uid` = %s AND NOT `item`.`global`))
|
||||
AND NOT `author`.`blocked` AND NOT `author`.`hidden`
|
||||
$sql_extra
|
||||
GROUP BY `item`.`uri`, `item`.`id` ORDER BY `item`.`id` DESC LIMIT %d , %d",
|
||||
item_fieldlists(), item_joins(local_user()), item_condition(),
|
||||
intval(local_user()),
|
||||
intval($a->pager['start']), intval($a->pager['itemspage']));
|
||||
$condition = ["(`uid` = 0 OR (`uid` = ? AND NOT `global`))
|
||||
AND `body` LIKE CONCAT('%',?,'%')",
|
||||
local_user(), $search];
|
||||
$params = ['order' => ['id' => true],
|
||||
'limit' => [$a->pager['start'], $a->pager['itemspage']]];
|
||||
$items = Item::select(local_user(), [], $condition, $params);
|
||||
$r = dba::inArray($items);
|
||||
}
|
||||
|
||||
if (! DBM::is_result($r)) {
|
||||
if (!DBM::is_result($r)) {
|
||||
info(L10n::t('No results.') . EOL);
|
||||
return $o;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue