. * * @category Widget * @package GNU Social * @author Ian Denhardt * @author Sean Corbett * @author Max Shinn * @copyright 2010 Free Software Foundation, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 */ if (!defined('STATUSNET')) { exit(1); } include_once INSTALLDIR . '/actions/conversation.php'; include_once INSTALLDIR . '/classes/Notice.php'; class PhotoAction extends Action { var $user = null; function prepare($args) { parent::prepare($args); $args = $this->returnToArgs(); $username = $args[1]['nickname']; $this->photoid = $args[1]['photoid']; if (common_valid_profile_tag($username) == 0) { $this->user = null; } else { $this->user = Profile::staticGet('nickname', $username); } $this->photo = GNUsocialPhoto::staticGet('notice_id', $this->photoid); $this->notice = Notice::staticGet('id', $this->photoid); $notices = Notice::conversationStream((int)$this->photoid-1, null, null); //Why do I have to do -1? $this->conversation = new ConversationTree($notices, $this); return true; } function handle($args) { parent::handle($args); $this->showPage(); } function title() { if (empty($this->user)) { return _m('No such user.'); } else if (empty($this->photo)) { return _m('No such photo.'); } else if (!empty($this->photo->title)) { return $this->photo->title; } else { return sprintf(_m("%s's Photo."), $this->user->nickname); } } function showLocalNav() { $nav = new GNUsocialPhotoNav($this); $nav->show(); } function showContent() { if(empty($this->user)) { return; } $this->elementStart('a', array('href' => $this->photo->uri)); $this->element('img', array('src' => $this->photo->uri)); $this->elementEnd('a'); $this->element('p', array(), $this->photo->photo_description); //This is a hack to hide the top-level comment //$this->element('style', array(), "#notice-{$this->photoid} div { display: none } #notice-{$this->photoid} ol li div { display: inline }"); $this->conversation->show(); } }