X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileminilist.php;h=9c10d62b183ab7028060deaa82db62f488071e67;hb=3f28b17c86c4cd88d4f39629ea8a89ec3a820790;hp=913119c79801e4128048a17978d9f7a80f64d211;hpb=ac9fda4bc0d0440378eeb23cc3ba673bb8f2b981;p=quix0rs-gnu-social.git diff --git a/lib/profileminilist.php b/lib/profileminilist.php index 913119c798..9c10d62b18 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -33,7 +33,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { 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 @@ -47,58 +47,61 @@ define('PROFILES_PER_MINILIST', 27); class ProfileMiniList extends ProfileList { + const MAX_PROFILES = PROFILES_PER_MINILIST; // put it in the class function startList() { $this->out->elementStart('ul', 'entities users xoxo'); } - function newListItem($profile) + function newListItem(Profile $profile) { return new ProfileMiniListItem($profile, $this->action); } - function showProfiles() + function maxProfiles() { - $cnt = 0; - - while ($this->profile->fetch()) { - $cnt++; - if ($cnt > PROFILES_PER_MINILIST) { - break; - } - $pli = $this->newListItem($this->profile); - $pli->show(); - } - - return $cnt; + return PROFILES_PER_MINILIST; } + function avatarSize() + { + return AVATAR_MINI_SIZE; + } } class ProfileMiniListItem extends ProfileListItem { function show() { - $this->out->elementStart('li', 'vcard'); + $this->out->elementStart('li', 'h-card'); if (Event::handle('StartProfileListItemProfileElements', array($this))) { if (Event::handle('StartProfileListItemAvatar', array($this))) { - $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)), + $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 photo', - 'alt' => ($this->profile->fullname) ? - $this->profile->fullname : - $this->profile->nickname)); - $this->out->element('span', 'fn nickname', $this->profile->nickname); + '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; + } }