. * * @category Personal * @package StatusNet * @author Evan Prodromou * @copyright 2010 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ if (!defined('STATUSNET')) { exit(1); } /** * User profile page * * @category Personal * @package StatusNet * @author Evan Prodromou * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ class HcardAction extends Action { var $user; var $profile; function prepare($args) { parent::prepare($args); $nickname_arg = $this->arg('nickname'); $nickname = common_canonical_nickname($nickname_arg); // Permanent redirect on non-canonical nickname if ($nickname_arg != $nickname) { $args = array('nickname' => $nickname); common_redirect(common_local_url('hcard', $args), 301); return false; } $this->user = User::staticGet('nickname', $nickname); if (!$this->user) { // TRANS: Client error displayed when trying to get a user hCard for a non-existing user. $this->clientError(_('No such user.'), 404); return false; } $this->profile = $this->user->getProfile(); if (!$this->profile) { // TRANS: Error message displayed when referring to a user without a profile. $this->serverError(_('User has no profile.')); return false; } return true; } function handle($args) { parent::handle($args); $this->showPage(); } function title() { return $this->profile->getBestName(); } function showContent() { $up = new ShortUserProfile($this, $this->user, $this->profile); $up->show(); } function showHeader() { return; } function showAside() { return; } function showSecondaryNav() { return; } } class ShortUserProfile extends UserProfile { function showEntityActions() { return; } }