nofollow for peopletag pages

This commit is contained in:
Evan Prodromou 2010-04-05 11:03:14 -04:00
parent 96761c14ea
commit 2882e40540
1 changed files with 40 additions and 4 deletions

View File

@ -32,8 +32,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1); exit(1);
} }
require_once INSTALLDIR.'/lib/profilelist.php';
/** /**
* This class outputs a paginated list of profiles self-tagged with a given tag * 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)); $profile->query(sprintf($qry, $this->tag, $lim));
$pl = new ProfileList($profile, $this); $ptl = new PeopleTagList($profile, $this); // pass the ammunition
$cnt = $pl->show(); $cnt = $ptl->show();
$this->pagination($this->page > 1, $this->pagination($this->page > 1,
$cnt > PROFILES_PER_PAGE, $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');
}
}
}