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; return $profile;
} }
function getLists($offset, $limit) function getLists($showPrivate)
{ {
$ids = array(); $ids = array();
@ -1352,7 +1352,11 @@ class Profile extends Memcached_DataObject
$lists = array(); $lists = array();
foreach ($ids as $id) { 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); return new ArrayWrapper($lists);

View File

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