don't show private lists; correct link in header

This commit is contained in:
Evan Prodromou 2011-04-14 17:27:26 -04:00
parent edee3995c2
commit 9208c94b29
2 changed files with 30 additions and 22 deletions

View File

@ -1324,7 +1324,7 @@ class Profile extends Memcached_DataObject
return $profile;
}
function getLists($offset, $limit)
function getLists($showPrivate)
{
$ids = array();
@ -1352,7 +1352,11 @@ class Profile extends Memcached_DataObject
$lists = array();
foreach ($ids as $id) {
$lists[] = Profile_list::staticGet('id', $id);
$list = Profile_list::staticGet('id', $id);
if (!empty($list) &&
($showPrivate || !$list->private)) {
$lists[] = $list;
}
}
return new ArrayWrapper($lists);

View File

@ -278,7 +278,10 @@ class ProfileAction extends OwnerDesignAction
function showLists()
{
$lists = $this->profile->getLists();
$cur = common_current_user();
$showPrivate = (!empty($cur) && $cur->id == $this->profile->id);
$lists = $this->profile->getLists($showPrivate);
if ($lists->N > 0) {
$this->elementStart('div', array('id' => 'entity_lists',
@ -286,38 +289,39 @@ class ProfileAction extends OwnerDesignAction
if (Event::handle('StartShowListsMiniList', array($this))) {
$url = common_local_url('peopletagsbyuser',
array('nickname' => $this->profile->nickname));
$this->elementStart('h2');
// TRANS: H2 text for user list membership statistics.
$this->statsSectionLink('userlists', _('Lists'));
$this->element('a',
array('href' => $url),
_('Lists'));
$this->text(' ');
$this->text($lists->N);
$this->elementEnd('h2');
$this->elementStart('ul');
$cur = common_current_user();
$first = true;
while ($lists->fetch()) {
if (!$lists->private ||
($lists->private && !empty($cur) && $cur->id == $profile->id)) {
if (!empty($lists->mainpage)) {
$url = $lists->mainpage;
} else {
$url = common_local_url('showprofiletag',
array('tagger' => $this->profile->nickname,
'tag' => $lists->tag));
}
if (!$first) {
$this->text(', ');
} else {
$first = false;
}
$this->element('a', array('href' => $url),
$lists->tag);
if (!empty($lists->mainpage)) {
$url = $lists->mainpage;
} else {
$url = common_local_url('showprofiletag',
array('tagger' => $this->profile->nickname,
'tag' => $lists->tag));
}
if (!$first) {
$this->text(', ');
} else {
$first = false;
}
$this->element('a', array('href' => $url),
$lists->tag);
}
$this->elementEnd('ul');