function showProfileData()
{
- if (Event::handle('StartProfilePageProfileSection', array(&$this, $this->profile))) {
+ if (Event::handle('StartProfilePageProfileSection', array(&$this->out, $this->profile))) {
$this->out->elementStart('div', 'entity_profile vcard author');
$this->out->element('h2', null, _('User profile'));
- if (Event::handle('StartProfilePageProfileElements', array(&$this, $this->profile))) {
+ if (Event::handle('StartProfilePageProfileElements', array(&$this->out, $this->profile))) {
$this->showAvatar();
$this->showNickname();
$this->showBio();
$this->showProfileTags();
- Event::handle('EndProfilePageProfileElements', array(&$this, $this->profile));
+ Event::handle('EndProfilePageProfileElements', array(&$this->out, $this->profile));
}
$this->out->elementEnd('div');
- Event::handle('EndProfilePageProfileSection', array(&$this, $this->profile));
+ Event::handle('EndProfilePageProfileSection', array(&$this->out, $this->profile));
}
}
function showAvatar()
{
- if (Event::handle('StartProfilePageAvatar', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageAvatar', array($this->out, $this->profile))) {
$avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
$this->out->elementEnd('dl');
- Event::handle('EndProfilePageAvatar', array($this, $this->profile));
+ Event::handle('EndProfilePageAvatar', array($this->out, $this->profile));
}
}
function showNickname()
{
- if (Event::handle('StartProfilePageNickname', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageNickname', array($this->out, $this->profile))) {
$this->out->elementStart('dl', 'entity_nickname');
$this->out->element('dt', null, _('Nickname'));
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
- Event::handle('EndProfilePageNickname', array($this, $this->profile));
+ Event::handle('EndProfilePageNickname', array($this->out, $this->profile));
}
}
function showFullName()
{
- if (Event::handle('StartProfilePageFullName', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageFullName', array($this->out, $this->profile))) {
if ($this->profile->fullname) {
$this->out->elementStart('dl', 'entity_fn');
$this->out->element('dt', null, _('Full name'));
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
}
- Event::handle('EndProfilePageFullName', array($this, $this->profile));
+ Event::handle('EndProfilePageFullName', array($this->out, $this->profile));
}
}
function showLocation()
{
- if (Event::handle('StartProfilePageLocation', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageLocation', array($this->out, $this->profile))) {
if ($this->profile->location) {
$this->out->elementStart('dl', 'entity_location');
$this->out->element('dt', null, _('Location'));
$this->out->element('dd', 'label', $this->profile->location);
$this->out->elementEnd('dl');
}
- Event::handle('EndProfilePageLocation', array($this, $this->profile));
+ Event::handle('EndProfilePageLocation', array($this->out, $this->profile));
}
}
function showHomepage()
{
- if (Event::handle('StartProfilePageHomepage', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageHomepage', array($this->out, $this->profile))) {
if ($this->profile->homepage) {
$this->out->elementStart('dl', 'entity_url');
$this->out->element('dt', null, _('URL'));
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
}
- Event::handle('EndProfilePageHomepage', array($this, $this->profile));
+ Event::handle('EndProfilePageHomepage', array($this->out, $this->profile));
}
}
function showBio()
{
- if (Event::handle('StartProfilePageBio', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageBio', array($this->out, $this->profile))) {
if ($this->profile->bio) {
$this->out->elementStart('dl', 'entity_note');
$this->out->element('dt', null, _('Note'));
$this->out->element('dd', 'note', $this->profile->bio);
$this->out->elementEnd('dl');
}
- Event::handle('EndProfilePageBio', array($this, $this->profile));
+ Event::handle('EndProfilePageBio', array($this->out, $this->profile));
}
}
function showProfileTags()
{
- if (Event::handle('StartProfilePageProfileTags', array($this, $this->profile))) {
+ if (Event::handle('StartProfilePageProfileTags', array($this->out, $this->profile))) {
$tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
if (count($tags) > 0) {
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
}
- Event::handle('EndProfilePageProfileTags', array($this, $this->profile));
+ Event::handle('EndProfilePageProfileTags', array($this->out, $this->profile));
}
}
function showEntityActions()
{
- if (Event::handle('StartProfilePageActionsSection', array(&$this, $this->profile))) {
+ if (Event::handle('StartProfilePageActionsSection', array(&$this->out, $this->profile))) {
$cur = common_current_user();
$this->out->element('h2', null, _('User actions'));
$this->out->elementStart('ul');
- if (Event::handle('StartProfilePageActionsElements', array(&$this, $this->profile))) {
+ if (Event::handle('StartProfilePageActionsElements', array(&$this->out, $this->profile))) {
if (empty($cur)) { // not logged in
$this->out->elementStart('li', 'entity_subscribe');
$this->showRemoteSubscribeLink();
}
}
+ // return-to args, so we don't have to keep re-writing them
+
+ list($action, $r2args) = $this->out->returnToArgs();
+
+ // push the action into the list
+
+ $r2args['action'] = $action;
+
// block/unblock
$blocked = $cur->hasBlocked($this->profile);
$this->out->elementStart('li', 'entity_block');
if ($blocked) {
- $ubf = new UnblockForm($this->out, $this->profile,
- array('action' => 'showstream',
- 'nickname' => $this->profile->nickname));
+ $ubf = new UnblockForm($this->out, $this->profile, $r2args);
$ubf->show();
} else {
- $bf = new BlockForm($this->out, $this->profile,
- array('action' => 'showstream',
- 'nickname' => $this->profile->nickname));
+ $bf = new BlockForm($this->out, $this->profile, $r2args);
$bf->show();
}
$this->out->elementEnd('li');
+
+ if ($cur->hasRight(Right::SANDBOXUSER) ||
+ $cur->hasRight(Right::SILENCEUSER) ||
+ $cur->hasRight(Right::DELETEUSER)) {
+ $this->out->elementStart('li', 'entity_moderation');
+ $this->out->element('p', null, _('Moderate'));
+ $this->out->elementStart('ul');
+ if ($cur->hasRight(Right::SANDBOXUSER)) {
+ $this->out->elementStart('li', 'entity_sandbox');
+ if ($this->user->isSandboxed()) {
+ $usf = new UnSandboxForm($this->out, $this->profile, $r2args);
+ $usf->show();
+ } else {
+ $sf = new SandboxForm($this->out, $this->profile, $r2args);
+ $sf->show();
+ }
+ $this->out->elementEnd('li');
+ }
+
+ if ($cur->hasRight(Right::SILENCEUSER)) {
+ $this->out->elementStart('li', 'entity_silence');
+ if ($this->user->isSilenced()) {
+ $usf = new UnSilenceForm($this->out, $this->profile, $r2args);
+ $usf->show();
+ } else {
+ $sf = new SilenceForm($this->out, $this->profile, $r2args);
+ $sf->show();
+ }
+ $this->out->elementEnd('li');
+ }
+
+ if ($cur->hasRight(Right::DELETEUSER)) {
+ $this->out->elementStart('li', 'entity_delete');
+ $df = new DeleteUserForm($this->out, $this->profile, $r2args);
+ $df->show();
+ $this->out->elementEnd('li');
+ }
+ $this->out->elementEnd('ul');
+ $this->out->elementEnd('li');
+ }
}
}
- Event::handle('EndProfilePageActionsElements', array(&$this, $this->profile));
+ Event::handle('EndProfilePageActionsElements', array(&$this->out, $this->profile));
}
$this->out->elementEnd('ul');
$this->out->elementEnd('div');
- Event::handle('EndProfilePageActionsSection', array(&$this, $this->profile));
+ Event::handle('EndProfilePageActionsSection', array(&$this->out, $this->profile));
}
}