From ac9fda4bc0d0440378eeb23cc3ba673bb8f2b981 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 1 Apr 2010 15:53:17 -0400 Subject: ProfileMiniListItem does same events as ProfileListItem --- lib/profileminilist.php | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/profileminilist.php b/lib/profileminilist.php index 079170d80..913119c79 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -81,20 +81,24 @@ 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'); - } + 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)), + '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'); + Event::handle('EndProfileListItemAvatar', array($this)); + } + $this->out->elementEnd('li'); + } } -- cgit v1.2.3-54-g00ecf From ffc1ac02c3f1f566088c8bef7c54d1ae97e56a36 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:12:27 -0400 Subject: add an event for group members minilist --- actions/showgroup.php | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/actions/showgroup.php b/actions/showgroup.php index a0d05ba37..6e0666690 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -388,18 +388,23 @@ class ShowgroupAction extends GroupDesignAction $this->elementStart('div', array('id' => 'entity_members', 'class' => 'section')); - $this->element('h2', null, _('Members')); + if (Event::handle('StartShowGroupMembersMiniList', array($this))) { - $pml = new ProfileMiniList($member, $this); - $cnt = $pml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); - } + $this->element('h2', null, _('Members')); + + $pml = new ProfileMiniList($member, $this); + $cnt = $pml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } + + if ($cnt > MEMBERS_PER_SECTION) { + $this->element('a', array('href' => common_local_url('groupmembers', + array('nickname' => $this->group->nickname))), + _('All members')); + } - if ($cnt > MEMBERS_PER_SECTION) { - $this->element('a', array('href' => common_local_url('groupmembers', - array('nickname' => $this->group->nickname))), - _('All members')); + Event::handle('EndShowGroupMembersMiniList', array($this)); } $this->elementEnd('div'); -- cgit v1.2.3-54-g00ecf From 5414096c44dd68c3212627320bd71d12e455950b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:12:40 -0400 Subject: add an event for subscribers minilist --- lib/profileaction.php | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/profileaction.php b/lib/profileaction.php index 029c21845..8880faba6 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -139,25 +139,30 @@ class ProfileAction extends OwnerDesignAction $this->elementStart('div', array('id' => 'entity_subscribers', 'class' => 'section')); - $this->element('h2', null, _('Subscribers')); + if (Event::handle('StartShowSubscribersMiniList', array($this))) { - $cnt = 0; + $this->element('h2', null, _('Subscribers')); - if (!empty($profile)) { - $pml = new ProfileMiniList($profile, $this); - $cnt = $pml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); + $cnt = 0; + + if (!empty($profile)) { + $pml = new ProfileMiniList($profile, $this); + $cnt = $pml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } + } + + if ($cnt > PROFILES_PER_MINILIST) { + $this->elementStart('p'); + $this->element('a', array('href' => common_local_url('subscribers', + array('nickname' => $this->profile->nickname)), + 'class' => 'more'), + _('All subscribers')); + $this->elementEnd('p'); } - } - if ($cnt > PROFILES_PER_MINILIST) { - $this->elementStart('p'); - $this->element('a', array('href' => common_local_url('subscribers', - array('nickname' => $this->profile->nickname)), - 'class' => 'more'), - _('All subscribers')); - $this->elementEnd('p'); + Event::handle('EndShowSubscribersMiniList', array($this)); } $this->elementEnd('div'); -- cgit v1.2.3-54-g00ecf From 8d335f0c86390a2f5bb9a1cfbacd47c679a19664 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:14:45 -0400 Subject: balance brackets on profileminilist --- lib/profileminilist.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/profileminilist.php b/lib/profileminilist.php index 913119c79..2b4ea1635 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -101,4 +101,5 @@ class ProfileMiniListItem extends ProfileListItem } $this->out->elementEnd('li'); } + } } -- cgit v1.2.3-54-g00ecf From 7fb8d0c4715c7c5b9d7e7b45ba749ffc03c12fe4 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:22:54 -0400 Subject: breakout subscribers minilist --- lib/profileaction.php | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/profileaction.php b/lib/profileaction.php index 8880faba6..0895dd318 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -146,8 +146,8 @@ class ProfileAction extends OwnerDesignAction $cnt = 0; if (!empty($profile)) { - $pml = new ProfileMiniList($profile, $this); - $cnt = $pml->show(); + $sml = new SubscribersMiniList($profile, $this); + $cnt = $sml->show(); if ($cnt == 0) { $this->element('p', null, _('(None)')); } @@ -259,3 +259,39 @@ class ProfileAction extends OwnerDesignAction } } +class SubscribersMiniList extends ProfileMiniList +{ + function newListItem($profile) + { + return new SubscribersMiniListItem($profile, $this->action); + } +} + +class SubscribersMiniListItem extends ProfileMiniListItem +{ + function show() + { + $this->out->elementStart('li', 'vcard'); + 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)), + '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'); + Event::handle('EndProfileListItemAvatar', array($this)); + } + $this->out->elementEnd('li'); + } + } +} + -- cgit v1.2.3-54-g00ecf From a313aeab9cddabc2fd02dfbe98a7aa83653260da Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:24:22 -0400 Subject: lib/default.php has nofollow group --- lib/default.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/default.php b/lib/default.php index 10f3f1a97..ffeab70b3 100644 --- a/lib/default.php +++ b/lib/default.php @@ -296,4 +296,8 @@ $default = ), 'api' => array('realm' => null), + 'nofollow' => + array('subscribers' => true, + 'members' => true, + 'peopletag' => true), ); -- cgit v1.2.3-54-g00ecf From 19401f6530f874f9bbbd71e251873bf678f2d7a5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:46:26 -0400 Subject: add linkAttributes() method for profilelist --- lib/profilelist.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/profilelist.php b/lib/profilelist.php index 3e5513895..934907bc3 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -181,9 +181,8 @@ class ProfileListItem extends Widget function showAvatar() { $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE); - $this->out->elementStart('a', array('href' => $this->profile->profileurl, - 'class' => 'url entry-title', - 'rel' => 'contact')); + $aAttrs = $this->linkAttributes(); + $this->out->elementStart('a', $aAttrs); $this->out->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE), 'class' => 'photo avatar', 'width' => AVATAR_STREAM_SIZE, @@ -299,4 +298,11 @@ class ProfileListItem extends Widget { return htmlspecialchars($text); } + + function linkAttributes() + { + return array('href' => $this->profile->profileurl, + 'class' => 'url entry-title', + 'rel' => 'contact'); + } } -- cgit v1.2.3-54-g00ecf From dd053aa3490298a292fbf9e5e061640cf774a527 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:46:38 -0400 Subject: override linkAttributes() method for profileminilist --- lib/profileminilist.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/profileminilist.php b/lib/profileminilist.php index 2b4ea1635..a98953474 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -83,10 +83,8 @@ class ProfileMiniListItem extends ProfileListItem $this->out->elementStart('li', 'vcard'); 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')); + $aAttrs = $this->linkAttributes(); + $this->out->elementStart('a', $aAttrs); $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, @@ -102,4 +100,17 @@ class ProfileMiniListItem extends ProfileListItem $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'] = 'url'; + + return $aAttrs; + } } -- cgit v1.2.3-54-g00ecf From 2e51d331459d212807bd977fcc972b1127d889fc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:46:55 -0400 Subject: override linkAttributes() method for subscribersminilist --- lib/profileaction.php | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/lib/profileaction.php b/lib/profileaction.php index 0895dd318..82e0224af 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -269,29 +269,13 @@ class SubscribersMiniList extends ProfileMiniList class SubscribersMiniListItem extends ProfileMiniListItem { - function show() + function linkAttributes() { - $this->out->elementStart('li', 'vcard'); - 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)), - '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'); - Event::handle('EndProfileListItemAvatar', array($this)); - } - $this->out->elementEnd('li'); + $aAttrs = parent::linkAttributes(); + if (common_config('nofollow', 'subscribers')) { + $aAttrs['rel'] .= ' nofollow'; } + return $aAttrs; } } -- cgit v1.2.3-54-g00ecf From 96761c14eafc5933119c95021da4bd8d89b4dd61 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 10:47:07 -0400 Subject: override linkAttributes() method for groupmembersminilist --- actions/showgroup.php | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/actions/showgroup.php b/actions/showgroup.php index 6e0666690..3d369e9eb 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -392,8 +392,8 @@ class ShowgroupAction extends GroupDesignAction $this->element('h2', null, _('Members')); - $pml = new ProfileMiniList($member, $this); - $cnt = $pml->show(); + $gmml = new GroupMembersMiniList($member, $this); + $cnt = $gmml->show(); if ($cnt == 0) { $this->element('p', null, _('(None)')); } @@ -507,3 +507,26 @@ class GroupAdminSection extends ProfileSection return null; } } + +class GroupMembersMiniList extends ProfileMiniList +{ + function newListItem($profile) + { + return new GroupMembersMiniListItem($profile, $this->action); + } +} + +class GroupMembersMiniListItem extends ProfileMiniListItem +{ + function linkAttributes() + { + $aAttrs = parent::linkAttributes(); + + if (common_config('nofollow', 'members')) { + $aAttrs['rel'] .= ' nofollow'; + } + + return $aAttrs; + } +} + -- cgit v1.2.3-54-g00ecf From 2882e40540b6ca0aaeb7b9e1841622cf0442ae3d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 5 Apr 2010 11:03:14 -0400 Subject: nofollow for peopletag pages --- actions/peopletag.php | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/actions/peopletag.php b/actions/peopletag.php index 4ba1dc0f1..af40b9d82 100644 --- a/actions/peopletag.php +++ b/actions/peopletag.php @@ -32,8 +32,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/lib/profilelist.php'; - /** * This class outputs a paginated list of profiles self-tagged with a given tag * @@ -124,8 +122,8 @@ class PeopletagAction extends Action $profile->query(sprintf($qry, $this->tag, $lim)); - $pl = new ProfileList($profile, $this); - $cnt = $pl->show(); + $ptl = new PeopleTagList($profile, $this); // pass the ammunition + $cnt = $ptl->show(); $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, @@ -146,3 +144,41 @@ class PeopletagAction extends Action } } + +class PeopleTagList extends ProfileList +{ + function newListItem($profile) + { + return new PeopleTagListItem($profile, $this->action); + } +} + +class PeopleTagListItem extends ProfileListItem +{ + function linkAttributes() + { + $aAttrs = parent::linkAttributes(); + + if (common_config('nofollow', 'peopletag')) { + $aAttrs['rel'] .= ' nofollow'; + } + + return $aAttrs; + } + + function showHomepage() + { + if (!empty($this->profile->homepage)) { + $this->out->text(' '); + $aAttrs = array('href' => $this->profile->homepage, + 'class' => 'url'); + if (common_config('nofollow', 'peopletag')) { + $aAttrs['rel'] = 'nofollow'; + } + $this->out->elementStart('a', $aAttrs); + $this->out->raw($this->highlight($this->profile->homepage)); + $this->out->elementEnd('a'); + } + } +} + -- cgit v1.2.3-54-g00ecf