X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fjsonsearchresultslist.php;h=0d72ddf7ab48184e41c371407ae9efefe6c940ea;hb=9109fe3c631ebef14f2de061fc6fc565ee0f7174;hp=171e1db4d62ee7e1285e09f1705a789147d35bd9;hpb=bab3e1b8586f42bc1f0a5f96b6990d67c6b74446;p=quix0rs-gnu-social.git diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php index 171e1db4d6..0d72ddf7ab 100644 --- a/lib/jsonsearchresultslist.php +++ b/lib/jsonsearchresultslist.php @@ -1,6 +1,6 @@ . * * @category Search - * @package Laconica - * @author Zach Copley - * @copyright 2008-2009 Control Yourself, Inc. + * @package StatusNet + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -35,10 +35,10 @@ if (!defined('LACONICA')) { * widget-like class for showing JSON search results * * @category Search - * @package Laconica - * @author Zach Copley + * @package StatusNet + * @author Zach Copley * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ * */ @@ -62,14 +62,19 @@ class JSONSearchResultsList /** * constructor * - * @param Notice $notice stream of notices from DB_DataObject + * @param Notice $notice stream of notices from DB_DataObject + * @param string $query the original search query + * @param int $rpp the number of results to display per page + * @param int $page a page offset + * @param int $since_id only display notices newer than this */ function __construct($notice, $query, $rpp, $page, $since_id = 0) { $this->notice = $notice; $this->query = urlencode($query); - $this->results_per_page = $this->rpp = $rpp; + $this->results_per_page = $rpp; + $this->rpp = $rpp; $this->page = $page; $this->since_id = $since_id; $this->results = array(); @@ -78,12 +83,13 @@ class JSONSearchResultsList /** * show the list of search results * - * @return int count of the search results listed. + * @return int $count of the search results listed. */ function show() { $cnt = 0; + $this->max_id = 0; $time_start = microtime(true); @@ -99,11 +105,17 @@ class JSONSearchResultsList break; } - $item = new ResultItem($this->notice); - array_push($this->results, $item); + $profile = $this->notice->getProfile(); + + // Don't show notices from deleted users + + if (!empty($profile)) { + $item = new ResultItem($this->notice); + array_push($this->results, $item); + } } - $time_end = microtime(true); + $time_end = microtime(true); $this->completed_in = $time_end - $time_start; // Set other attrs @@ -141,10 +153,10 @@ class JSONSearchResultsList * widget for displaying a single JSON search result * * @category UI - * @package Laconica - * @author Zach Copley + * @package StatusNet + * @author Zach Copley * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ * @see JSONSearchResultsList */ @@ -197,11 +209,11 @@ class ResultItem function buildResult() { - $this->text = $this->notice->content; + $this->text = $this->notice->content; $replier_profile = null; if ($this->notice->reply_to) { - $reply = Notice::staticGet(intval($notice->reply_to)); + $reply = Notice::staticGet(intval($this->notice->reply_to)); if ($reply) { $replier_profile = $reply->getProfile(); } @@ -209,22 +221,25 @@ class ResultItem $this->to_user_id = ($replier_profile) ? intval($replier_profile->id) : null; - $this->to_user = ($replier_profile) ? + $this->to_user = ($replier_profile) ? $replier_profile->nickname : null; - $this->from_user = $this->profile->nickname; - $this->id = $this->notice->id; + + $this->from_user = $this->profile->nickname; + $this->id = $this->notice->id; $this->from_user_id = $this->profile->id; $user = User::staticGet('id', $this->profile->id); - $this->iso_language_code = $this->user->language; + + $this->iso_language_code = $user->language; $this->source = $this->getSourceLink($this->notice->source); $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE); + $this->profile_image_url = ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE); - $this->created_at = date('r', $this->notice->created); + $this->created_at = common_date_rfc2822($this->notice->created); } /** @@ -233,27 +248,30 @@ class ResultItem * Either the name (and link) of the API client that posted the notice, * or one of other other channels. * - * @return string the source of the Notice + * @param string $source the source of the Notice + * + * @return string a fully rendered source of the Notice */ - function getSourceLink($source) - { - $source_name = _($source); - switch ($source) { - case 'web': - case 'xmpp': - case 'mail': - case 'omb': - case 'api': - break; - default: - $ns = Notice_source::staticGet($source); - if ($ns) { - $source_name = '' . $ns->name . ''; - } - break; - } - return $source_name; - } + function getSourceLink($source) + { + $source_name = _($source); + switch ($source) { + case 'web': + case 'xmpp': + case 'mail': + case 'omb': + case 'api': + break; + default: + $ns = Notice_source::staticGet($source); + if ($ns) { + $source_name = '' . $ns->name . ''; + } + break; + } + + return $source_name; + } }