Issue 9165: Make pager work for search

This commit is contained in:
Michael 2020-09-17 21:10:59 +00:00
parent d0caf93a0a
commit 03157cc2f2
2 changed files with 19 additions and 2 deletions

View file

@ -440,6 +440,21 @@ class Tag
return $return; return $return;
} }
/**
* Counts posts for given tag
*
* @param string $search
* @param integer $uid
* @return integer number of posts
*/
public static function countByTag(string $search, int $uid = 0)
{
$condition = ["`name` = ? AND (NOT `private` OR (`private` AND `uid` = ?))", $search, $uid];
$params = ['group_by' => ['uri-id']];
return DBA::count('tag-search-view', $condition, $params);
}
/** /**
* Search posts for given tag * Search posts for given tag
* *

View file

@ -156,8 +156,9 @@ class Index extends BaseSearch
$params = ['order' => ['id' => true], 'group_by' => ['uri-id']]; $params = ['order' => ['id' => true], 'group_by' => ['uri-id']];
$items = Item::selectForUser(local_user(), [], ['uri-id' => $uriids], $params); $items = Item::selectForUser(local_user(), [], ['uri-id' => $uriids], $params);
$r = Item::inArray($items); $r = Item::inArray($items);
$count = Tag::countByTag($search, local_user());
} else { } else {
$r = []; $count = 0;
} }
} else { } else {
Logger::info('Start fulltext search.', ['q' => $search]); Logger::info('Start fulltext search.', ['q' => $search]);
@ -173,6 +174,7 @@ class Index extends BaseSearch
]; ];
$items = Item::selectForUser(local_user(), [], $condition, $params); $items = Item::selectForUser(local_user(), [], $condition, $params);
$r = Item::inArray($items); $r = Item::inArray($items);
$count = DBA::count('item', $condition);
} }
if (!DBA::isResult($r)) { if (!DBA::isResult($r)) {
@ -194,7 +196,7 @@ class Index extends BaseSearch
$o .= conversation(DI::app(), $r, 'search', false, false, 'commented', local_user()); $o .= conversation(DI::app(), $r, 'search', false, false, 'commented', local_user());
$o .= $pager->renderMinimal(count($r)); $o .= $pager->renderMinimal($count);
return $o; return $o;
} }