<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Content\Pager;
use Friendica\Content\Text\HTML;
use Friendica\Content\Widget;
-use Friendica\Core\Cache\Duration;
+use Friendica\Core\Cache\Enum\Duration;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Item;
-use Friendica\Model\ItemContent;
use Friendica\Model\Post;
use Friendica\Model\Tag;
use Friendica\Module\BaseSearch;
use Friendica\Network\HTTPException;
-use Friendica\Util\Strings;
class Index extends BaseSearch
{
- public static function content(array $parameters = [])
+ protected function content(array $request = []): string
{
- $search = (!empty($_GET['q']) ? Strings::escapeTags(trim(rawurldecode($_GET['q']))) : '');
+ $search = (!empty($_GET['q']) ? trim(rawurldecode($_GET['q'])) : '');
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
}
if (DI::config()->get('system', 'local_search') && !Session::isAuthenticated()) {
- $e = new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a search.'));
- $e->httpdesc = DI::l10n()->t('Public access denied.');
- throw $e;
+ throw new HTTPException\ForbiddenException(DI::l10n()->t('Only logged in users are permitted to perform a search.'));
}
if (DI::config()->get('system', 'permit_crawling') && !Session::isAuthenticated()) {
$tag = false;
if (!empty($_GET['tag'])) {
$tag = true;
- $search = '#' . Strings::escapeTags(trim(rawurldecode($_GET['tag'])));
+ $search = '#' . trim(rawurldecode($_GET['tag']));
}
// contruct a wrapper for the search header
}
if (!empty($uriids)) {
- $params = ['order' => ['id' => true], 'group_by' => ['uri-id']];
- $items = Post::toArray(Post::selectForUser(local_user(), Item::DISPLAY_FIELDLIST, ['uri-id' => $uriids], $params));
+ $condition = ["(`uid` = ? OR (`uid` = ? AND NOT `global`))", 0, local_user()];
+ $condition = DBA::mergeConditions($condition, ['uri-id' => $uriids]);
+ $params = ['order' => ['id' => true]];
+ $items = Post::toArray(Post::selectForUser(local_user(), Item::DISPLAY_FIELDLIST, $condition, $params));
}
if (empty($items)) {
Logger::info('Start Conversation.', ['q' => $search]);
- $o .= conversation(DI::app(), $items, 'search', false, false, 'commented', local_user());
+ $o .= DI::conversation()->create($items, 'search', false, false, 'commented', local_user());
if (DI::pConfig()->get(local_user(), 'system', 'infinite_scroll')) {
$o .= HTML::scrollLoader();