. * * @category Widget * @package StatusNet * @author Evan Prodromou * @copyright 2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ if (!defined('STATUSNET')) { // This check helps protect against security problems; // your code file can't be executed directly from the web. exit(1); } /** * Class comment * * @category General * @package StatusNet * @author Evan Prodromou * @copyright 2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ abstract class ProfileBlock extends Widget { abstract function avatar(); abstract function name(); abstract function url(); abstract function canEdit(); abstract function editUrl(); abstract function editText(); abstract function location(); abstract function homepage(); abstract function description(); function show() { $this->out->elementStart('div', 'profile_block'); $this->out->element('img', array('src' => $this->avatar(), 'class' => 'profile_block_avatar', 'alt' => $this->name(), 'width' => AVATAR_PROFILE_SIZE, 'height' => AVATAR_PROFILE_SIZE)); if ($this->canEdit()) { $this->out->element('a', array('href' => $this->editUrl()), $this->editText()); } $name = $this->name(); if (!empty($name)) { $url = $this->url(); if (!empty($url)) { $this->out->element('a', array('href' => $url), $name); } else { $this->out->element('span', 'profile_block_name', $name); } } $location = $this->location(); if (!empty($location)) { $this->out->element('span', 'profile_block_location', $location); } $homepage = $this->homepage(); if (!empty($homepage)) { $this->out->element('a', 'profile_block_homepage', $homepage); } $description = $this->description(); if (!empty($description)) { $this->out->element('p', 'profile_block_description', $description); } $this->out->elementEnd('div'); } }