X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FAutocomplete%2Fautocomplete.php;h=e15e95ec19abd2c7da8c27362497593701b1dbe9;hb=6c671141982c5837a2e5bf1e90de389c728d5dee;hp=379390ffdf23c1cd93fc1a85840cffec8e22010d;hpb=a42e128c1532c45fd930d98c985f9a8d98ff6868;p=quix0rs-gnu-social.git diff --git a/plugins/Autocomplete/autocomplete.php b/plugins/Autocomplete/autocomplete.php index 379390ffdf..e15e95ec19 100644 --- a/plugins/Autocomplete/autocomplete.php +++ b/plugins/Autocomplete/autocomplete.php @@ -23,6 +23,7 @@ * @package StatusNet * @author Craig Andrews * @copyright 2008-2009 StatusNet, Inc. + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ @@ -42,7 +43,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AutocompleteAction extends Action { private $result; @@ -59,7 +59,7 @@ class AutocompleteAction extends Action { $max=0; foreach($this->users as $user){ - $max = max($max,strtotime($user->modified),strtotime($user->profile->modified)); + $max = max($max,strtotime($user->modified),strtotime($user->getProfile()->modified)); } foreach($this->groups as $group){ $max = max($max,strtotime($group->modified)); @@ -79,6 +79,7 @@ class AutocompleteAction extends Action function etag() { return '"' . implode(':', array($this->arg('action'), + common_user_cache_hash(), crc32($this->arg('q')), //the actual string can have funny characters in we don't want showing up in the etag $this->arg('limit'), $this->lastModified())) . '"'; @@ -86,7 +87,15 @@ class AutocompleteAction extends Action function prepare($args) { + // If we die, show short error messages. + StatusNet::setApi(true); + parent::prepare($args); + + $cur = common_current_user(); + if (!$cur) { + throw new ClientException('Access forbidden', true); + } $this->groups=array(); $this->users=array(); $q = $this->arg('q'); @@ -125,13 +134,47 @@ class AutocompleteAction extends Action $results = array(); foreach($this->users as $user){ $profile = $user->getProfile(); - $results[]=array('nickname' => $user->nickname, 'fullname'=> $profile->fullname, 'type'=>'user'); + $avatar = $profile->getAvatar(AVATAR_MINI_SIZE); + // sigh.... encapsulate this upstream! + if ($avatar) { + $avatar = $avatar->displayUrl(); + } else { + $avatar = Avatar::defaultImage(AVATAR_MINI_SIZE); + } + $results[] = array( + 'nickname' => $user->nickname, + 'fullname'=> $profile->fullname, + 'avatar' => $avatar, + 'type' => 'user' + ); } foreach($this->groups as $group){ - $results[]=array('nickname' => $group->nickname, 'fullname'=> $group->fullname, 'type'=>'group'); + // sigh.... encapsulate this upstream! + if ($group->mini_logo) { + $avatar = $group->mini_logo; + } else { + $avatar = User_group::defaultLogo(AVATAR_MINI_SIZE); + } + $results[] = array( + 'nickname' => $group->nickname, + 'fullname'=> $group->fullname, + 'avatar' => $avatar, + 'type' => 'group'); } foreach($results as $result) { print json_encode($result) . "\n"; } } + + /** + * Is this action read-only? + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } }