<?php
/**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
*
* Widget to show a list of groups
*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Public
- * @package Laconica
+ * @package StatusNet
* @author Evan Prodromou <evan@controlyourself.ca>
- * @copyright 2008-2009 Control Yourself, Inc.
+ * @copyright 2008-2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://laconi.ca/
+ * @link http://status.net/
*/
if (!defined('LACONICA')) {
require_once INSTALLDIR.'/lib/widget.php';
-define('groupS_PER_PAGE', 20);
+define('GROUPS_PER_PAGE', 20);
/**
* Widget to show a list of groups
*
* @category Public
- * @package Laconica
+ * @package StatusNet
* @author Evan Prodromou <evan@controlyourself.ca>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://laconi.ca/
+ * @link http://status.net/
*/
class GroupList extends Widget
function show()
{
- $this->out->elementStart('ul', 'groups');
+ $this->out->elementStart('ul', 'profiles groups xoxo');
$cnt = 0;
while ($this->group->fetch()) {
$cnt++;
- if($cnt > groupS_PER_PAGE) {
+ if($cnt > GROUPS_PER_PAGE) {
break;
}
$this->showgroup();
function showGroup()
{
- $this->out->elementStart('li', array('class' => 'group',
+ $this->out->elementStart('li', array('class' => 'profile',
'id' => 'group-' . $this->group->id));
$user = common_current_user();
- $this->out->elementStart('div', array('id' => 'group_group',
- 'class' => 'vcard'));
+ $this->out->elementStart('div', 'entity_profile vcard');
$logo = ($this->group->stream_logo) ?
$this->group->stream_logo : User_group::defaultLogo(AVATAR_STREAM_SIZE);
$this->out->elementStart('a', array('href' => $this->group->homeUrl(),
- 'class' => 'url'));
+ 'class' => 'url',
+ 'rel' => 'group'));
$this->out->element('img', array('src' => $logo,
- 'class' => 'photo avatar',
- 'width' => AVATAR_STREAM_SIZE,
- 'height' => AVATAR_STREAM_SIZE,
- 'alt' =>
- ($this->group->fullname) ? $this->group->fullname :
- $this->group->nickname));
- $hasFN = ($this->group->fullname) ? 'nickname' : 'fn nickname';
+ 'class' => 'photo avatar',
+ 'width' => AVATAR_STREAM_SIZE,
+ 'height' => AVATAR_STREAM_SIZE,
+ 'alt' =>
+ ($this->group->fullname) ? $this->group->fullname :
+ $this->group->nickname));
+ $hasFN = ($this->group->fullname) ? 'nickname url uid' : 'fn org nickname url uid';
$this->out->elementStart('span', $hasFN);
$this->out->raw($this->highlight($this->group->nickname));
$this->out->elementEnd('span');
$this->out->elementEnd('a');
if ($this->group->fullname) {
- $this->out->elementStart('dl', 'group_fn');
+ $this->out->elementStart('dl', 'entity_fn');
$this->out->element('dt', null, 'Full name');
$this->out->elementStart('dd');
- $this->out->elementStart('span', 'fn');
+ $this->out->elementStart('span', 'fn org');
$this->out->raw($this->highlight($this->group->fullname));
$this->out->elementEnd('span');
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
}
if ($this->group->location) {
- $this->out->elementStart('dl', 'group_location');
+ $this->out->elementStart('dl', 'entity_location');
$this->out->element('dt', null, _('Location'));
- $this->out->elementStart('dd', 'location');
+ $this->out->elementStart('dd', 'label');
$this->out->raw($this->highlight($this->group->location));
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
}
if ($this->group->homepage) {
- $this->out->elementStart('dl', 'group_url');
+ $this->out->elementStart('dl', 'entity_url');
$this->out->element('dt', null, _('URL'));
$this->out->elementStart('dd');
$this->out->elementStart('a', array('href' => $this->group->homepage,
$this->out->elementEnd('dl');
}
if ($this->group->description) {
- $this->out->elementStart('dl', 'group_note');
+ $this->out->elementStart('dl', 'entity_note');
$this->out->element('dt', null, _('Note'));
$this->out->elementStart('dd', 'note');
$this->out->raw($this->highlight($this->group->description));
# If we're on a list with an owner (subscriptions or subscribers)...
- if ($user && $user->id == $this->owner->id) {
+ if (!empty($user) && !empty($this->owner) && $user->id == $this->owner->id) {
$this->showOwnerControls();
}
$this->out->elementEnd('div');
if ($user) {
+ $this->out->elementStart('div', 'entity_actions');
+ $this->out->elementStart('ul');
+ $this->out->elementStart('li', 'entity_subscribe');
# XXX: special-case for user looking at own
# subscriptions page
if ($user->isMember($this->group)) {
$lf = new LeaveForm($this->out, $this->group);
$lf->show();
- } else {
- $jf = new JoinForm();
+ } else if (!Group_block::isBlocked($this->group, $user->getProfile())) {
+ $jf = new JoinForm($this->out, $this->group);
$jf->show();
}
+ $this->out->elementEnd('li');
+ $this->out->elementEnd('ul');
+ $this->out->elementEnd('div');
}
$this->out->elementEnd('li');