Merge branch 'master' of ../trunk

This commit is contained in:
sarven 2009-01-23 04:55:09 +00:00
commit 7afb2be83f
3 changed files with 79 additions and 32 deletions

View File

@ -90,17 +90,31 @@ class BlockAction extends Action
{
parent::handle($args);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($this->arg('block')) {
$this->areYouSureForm();
} else if ($this->arg('no')) {
if ($this->arg('no')) {
$cur = common_current_user();
common_redirect(common_local_url('subscribers', array('nickname' => $cur->nickname)));
} else if ($this->arg('yes')) {
$other = Profile::staticGet('id', $this->arg('blockto'));
common_redirect(common_local_url('showstream', array('nickname' => $other->nickname)));
} elseif ($this->arg('yes')) {
$this->blockProfile();
} elseif ($this->arg('blockto')) {
$this->showPage();
}
}
}
function showContent() {
$this->areYouSureForm();
}
function title() {
return _('Block user');
}
function showNoticeForm() {
// nop
}
/**
* Confirm with user.
*
@ -111,7 +125,6 @@ class BlockAction extends Action
function areYouSureForm()
{
$id = $this->profile->id;
common_show_header(_('Block user'));
$this->element('p', null,
_('Are you sure you want to block this user? '.
'Afterwards, they will be unsubscribed from you, '.
@ -134,7 +147,6 @@ class BlockAction extends Action
$this->submit('no', _('No'));
$this->submit('yes', _('Yes'));
$this->elementEnd('form');
common_show_footer();
}
/**
@ -160,7 +172,7 @@ class BlockAction extends Action
foreach ($this->args as $k => $v) {
if ($k == 'returnto-action') {
$action = $v;
} else if (substr($k, 0, 9) == 'returnto-') {
} elseif (substr($k, 0, 9) == 'returnto-') {
$args[substr($k, 9)] = $v;
}
}

View File

@ -1,5 +1,16 @@
<?php
/*
/**
* Unblock a user action class.
*
* PHP version 5
*
* @category Action
* @package Laconica
* @author Evan Prodromou <evan@controlyourself.ca>
* @author Robin Millette <millette@controlyourself.ca>
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://laconi.ca/
*
* Laconica - a distributed open-source microblogging tool
* Copyright (C) 2008, Controlez-Vous, Inc.
*
@ -17,67 +28,86 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('LACONICA')) { exit(1); }
if (!defined('LACONICA')) {
exit(1);
}
/**
* Unblock a user action class.
*
* @category Action
* @package Laconica
* @author Evan Prodromou <evan@controlyourself.ca>
* @author Robin Millette <millette@controlyourself.ca>
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://laconi.ca/
*/
class UnblockAction extends Action
{
var $profile = null;
/**
* Take arguments for running
*
* @param array $args $_REQUEST args
*
* @return boolean success flag
*/
function prepare($args)
{
parent::prepare($args);
if (!common_logged_in()) {
$this->clientError(_('Not logged in.'));
return false;
}
$token = $this->trimmed('token');
if (!$token || $token != common_session_token()) {
$this->clientError(_('There was a problem with your session token. Try again, please.'));
return;
}
$id = $this->trimmed('unblockto');
if (!$id) {
$this->clientError(_('No profile specified.'));
return false;
}
$this->profile = Profile::staticGet('id', $id);
if (!$this->profile) {
$this->clientError(_('No profile with that ID.'));
return false;
}
return true;
}
/**
* Handle request
*
* Shows a page with list of favorite notices
*
* @param array $args $_REQUEST args; handled in prepare()
*
* @return void
*/
function handle($args)
{
parent::handle($args);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->unblock_profile();
$this->unblockProfile();
}
}
function unblock_profile()
/**
* Unblock a user.
*
* @return void
*/
function unblockProfile()
{
$cur = common_current_user();
$result = $cur->unblock($this->profile);
if (!$result) {
$this->serverError(_('Error removing the block.'));
return;
}
foreach ($this->args as $k => $v) {
if ($k == 'returnto-action') {
$action = $v;
@ -85,7 +115,6 @@ class UnblockAction extends Action
$args[substr($k, 9)] = $v;
}
}
if ($action) {
common_redirect(common_local_url($action, $args));
} else {
@ -94,3 +123,4 @@ class UnblockAction extends Action
}
}
}

View File

@ -274,14 +274,19 @@ class NoticeListItem extends Widget
function showAvatar()
{
$avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
if ('shownotice' === $this->out->trimmed('action')) {
$avatar_size = AVATAR_PROFILE_SIZE;
} else {
$avatar_size = AVATAR_STREAM_SIZE;
}
$avatar = $this->profile->getAvatar($avatar_size);
$this->out->element('img', array('src' => ($avatar) ?
common_avatar_display_url($avatar) :
common_default_avatar(AVATAR_STREAM_SIZE),
common_default_avatar($avatar_size),
'class' => 'avatar photo',
'width' => AVATAR_STREAM_SIZE,
'height' => AVATAR_STREAM_SIZE,
'width' => $avatar_size,
'height' => $avatar_size,
'alt' =>
($this->profile->fullname) ?
$this->profile->fullname :