X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fjsonsearchresultslist.php;h=80dc33e323ebca5e421b0ed9bb6aa9a9eefdf894;hb=5e7a7701b94ee63927750064a39b188d9e17164a;hp=f786c20a806ed53c3c55cff6eb9c0cbe0367dad5;hpb=533a463879e574f53fb84dd977e9d72a75023451;p=quix0rs-gnu-social.git diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php index f786c20a80..80dc33e323 100644 --- a/lib/jsonsearchresultslist.php +++ b/lib/jsonsearchresultslist.php @@ -1,6 +1,6 @@ . * * @category Search - * @package Laconica - * @author Zach Copley - * @copyright 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/ * */ @@ -89,6 +89,7 @@ class JSONSearchResultsList function show() { $cnt = 0; + $this->max_id = 0; $time_start = microtime(true); @@ -100,12 +101,22 @@ class JSONSearchResultsList $this->max_id = (int)$this->notice->id; } + if ($this->since_id && $this->notice->id <= $this->since_id) { + break; + } + if ($cnt > $this->rpp) { 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); @@ -146,10 +157,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 */ @@ -173,7 +184,8 @@ class ResultItem var $id; var $from_user_id; var $iso_language_code; - var $source; + var $source = null; + var $source_link = null; var $profile_image_url; var $created_at; @@ -206,7 +218,7 @@ class ResultItem $replier_profile = null; if ($this->notice->reply_to) { - $reply = Notice::staticGet(intval($notice->reply_to)); + $reply = Notice::getKV(intval($this->notice->reply_to)); if ($reply) { $replier_profile = $reply->getProfile(); } @@ -221,50 +233,54 @@ class ResultItem $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->source = $this->getSourceLink($this->notice->source); + $this->iso_language_code = Profile_prefs::getConfigData($this->profile, 'site', 'language'); + + // set source and source_link + $this->setSourceData(); - $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE); - - $this->profile_image_url = ($avatar) ? - $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE); + $this->profile_image_url = $this->profile->avatarUrl(AVATAR_STREAM_SIZE); $this->created_at = common_date_rfc2822($this->notice->created); } /** - * Show the source of the notice + * Set the notice's source data (api/app name and URL) * * Either the name (and link) of the API client that posted the notice, - * or one of other other channels. - * - * @param string $source the source of the Notice + * or one of other other channels. Uses the local notice object. * - * @return string a fully rendered source of the Notice + * @return void */ - - function getSourceLink($source) + function setSourceData() { - $source_name = _($source); + $source = null; + $source_link = null; + switch ($source) { case 'web': case 'xmpp': case 'mail': case 'omb': case 'api': + // Gettext translations for the below source types are available. + $source = _($this->notice->source); break; + default: - $ns = Notice_source::staticGet($source); - if ($ns) { - $source_name = '' . $ns->name . ''; + $ns = Notice_source::getKV($this->notice->source); + if ($ns instanceof Notice_source) { + $source = $ns->code; + if (!empty($ns->url)) { + $source_link = $ns->url; + if (!empty($ns->name)) { + $source = $ns->name; + } + } } break; } - return $source_name; + $this->source = $source; + $this->source_link = $source_link; } - }