X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileminilist.php;h=33624a3c7059440298a23e3e829b13c5b59b5f5d;hb=1ee79dc3791162f7ef9b92befaef597328266ce1;hp=09bef6f7c6158a054c806b210add89c8b3b2daea;hpb=c0f3204a10beaa4243eae1bc2862da7e0cfff10a;p=quix0rs-gnu-social.git diff --git a/lib/profileminilist.php b/lib/profileminilist.php index 09bef6f7c6..33624a3c70 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -1,6 +1,6 @@ . * * @category Public - * @package Laconica - * @author Evan Prodromou - * @copyright 2008-2009 Control Yourself, Inc. + * @package StatusNet + * @author Evan Prodromou + * @copyright 2008-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); } require_once INSTALLDIR.'/lib/profilelist.php'; -define('PROFILES_PER_MINILIST', 27); +define('PROFILES_PER_MINILIST', 8); /** * Widget to show a list of profiles, good for sidebar * * @category Public - * @package Laconica - * @author Evan Prodromou + * @package StatusNet + * @author Evan Prodromou * @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/ */ class ProfileMiniList extends ProfileList { + const MAX_PROFILES = PROFILES_PER_MINILIST; // put it in the class + function startList() { $this->out->elementStart('ul', 'entities users xoxo'); @@ -56,27 +58,50 @@ class ProfileMiniList extends ProfileList { return new ProfileMiniListItem($profile, $this->action); } + + function maxProfiles() + { + return PROFILES_PER_MINILIST; + } + + function avatarSize() + { + return AVATAR_MINI_SIZE; + } } class ProfileMiniListItem extends ProfileListItem { function show() { - $this->out->elementStart('li', 'vcard'); - $this->out->elementStart('a', array('title' => $this->profile->getBestName(), - 'href' => $this->profile->profileurl, - 'rel' => 'contact member', - 'class' => 'url')); - $avatar = $this->profile->getAvatar(AVATAR_MINI_SIZE); - $this->out->element('img', array('src' => (($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_MINI_SIZE)), - 'width' => AVATAR_MINI_SIZE, - 'height' => AVATAR_MINI_SIZE, - 'class' => 'avatar photo', - 'alt' => ($this->profile->fullname) ? - $this->profile->fullname : - $this->profile->nickname)); - $this->out->element('span', 'fn nickname', $this->profile->nickname); - $this->out->elementEnd('a'); - $this->out->elementEnd('li'); + $this->out->elementStart('li', 'h-card'); + if (Event::handle('StartProfileListItemProfileElements', array($this))) { + if (Event::handle('StartProfileListItemAvatar', array($this))) { + $aAttrs = $this->linkAttributes(); + $this->out->elementStart('a', $aAttrs); + $avatarUrl = $this->profile->avatarUrl(AVATAR_MINI_SIZE); + $this->out->element('img', array('src' => $avatarUrl, + 'width' => AVATAR_MINI_SIZE, + 'height' => AVATAR_MINI_SIZE, + 'class' => 'avatar u-photo', + 'alt' => $this->profile->getBestName())); + $this->out->elementEnd('a'); + Event::handle('EndProfileListItemAvatar', array($this)); + } + $this->out->elementEnd('li'); + } + } + + // default; overridden for nofollow lists + + function linkAttributes() + { + $aAttrs = parent::linkAttributes(); + + $aAttrs['title'] = $this->profile->getBestName(); + $aAttrs['rel'] = 'contact member'; // @todo: member? always? + $aAttrs['class'] = 'u-url p-name'; + + return $aAttrs; } }