X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileminilist.php;h=9c10d62b183ab7028060deaa82db62f488071e67;hb=3f28b17c86c4cd88d4f39629ea8a89ec3a820790;hp=f11cae8a5f4df9d9700091ce4977d5ad1c97e497;hpb=c2ba727d6154394fe234e9297b430ac69fd24c88;p=quix0rs-gnu-social.git diff --git a/lib/profileminilist.php b/lib/profileminilist.php index f11cae8a5f..9c10d62b18 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 { - function newListItem($profile) + const MAX_PROFILES = PROFILES_PER_MINILIST; // put it in the class + + function startList() + { + $this->out->elementStart('ul', 'entities users xoxo'); + } + + function newListItem(Profile $profile) { 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; } }