. * * @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 location(); abstract function homepage(); abstract function description(); function show() { $this->out->elementStart('div', 'profile_block section'); $size = $this->avatarSize(); $this->out->element('img', array('src' => $this->avatar(), 'class' => 'profile_block_avatar', 'alt' => $this->name(), 'width' => $size, 'height' => $size)); $name = $this->name(); if (!empty($name)) { $this->out->elementStart('p', 'profile_block_name'); $url = $this->url(); if (!empty($url)) { $this->out->element('a', array('href' => $url), $name); } else { $this->out->text($name); } $this->out->elementEnd('p'); } $location = $this->location(); if (!empty($location)) { $this->out->element('p', '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->showActions(); $this->out->elementEnd('div'); } function avatarSize() { return AVATAR_PROFILE_SIZE; } function showActions() { } }