2010-12-25 14:02:06 +00:00
< ? php
/**
* GNU Social
* Copyright ( C ) 2010 , Free Software Foundation , Inc .
*
* PHP version 5
*
* LICENCE :
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
* along with this program . If not , see < http :// www . gnu . org / licenses />.
*
* @ category Widget
* @ package GNU Social
* @ author Ian Denhardt < ian @ zenhack . net >
* @ author Sean Corbett < sean @ gnu . org >
* @ author Max Shinn < trombonechamp @ gmail . com >
* @ copyright 2010 Free Software Foundation , Inc .
* @ license http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html AGPL 3.0
*/
2014-05-12 10:13:13 +01:00
if ( ! defined ( 'GNUSOCIAL' )) { exit ( 1 ); }
2010-12-25 14:02:06 +00:00
2014-05-12 10:13:13 +01:00
class PhotoAction extends ManagedAction
2010-12-25 14:02:06 +00:00
{
var $user = null ;
2014-05-12 10:13:13 +01:00
var $conv = null ; // Conversation dataobject
2010-12-25 14:02:06 +00:00
2014-05-12 10:13:13 +01:00
protected function prepare ( array $args = array ())
2010-12-25 14:02:06 +00:00
{
parent :: prepare ( $args );
$args = $this -> returnToArgs ();
2010-12-27 02:51:17 +00:00
$this -> photoid = $args [ 1 ][ 'photoid' ];
2013-08-18 12:04:58 +01:00
$this -> photo = GNUsocialPhoto :: getKV ( 'id' , $this -> photoid );
$this -> notice = Notice :: getKV ( 'id' , $this -> photo -> notice_id );
2010-12-25 14:02:06 +00:00
2013-08-18 12:04:58 +01:00
$this -> user = Profile :: getKV ( 'id' , $this -> notice -> profile_id );
2014-05-12 10:13:13 +01:00
$this -> conv = $this -> notice -> getConversation ();
2010-12-25 14:02:06 +00:00
2014-05-12 10:13:13 +01:00
return true ;
2010-12-25 14:02:06 +00:00
}
function title ()
{
if ( empty ( $this -> user )) {
return _m ( 'No such user.' );
} else if ( empty ( $this -> photo )) {
2010-12-27 02:51:17 +00:00
return _m ( 'No such photo.' );
} else if ( ! empty ( $this -> photo -> title )) {
2010-12-25 14:02:06 +00:00
return $this -> photo -> title ;
2010-12-27 02:51:17 +00:00
} else {
2010-12-25 14:02:06 +00:00
return sprintf ( _m ( " %s's Photo. " ), $this -> user -> nickname );
}
}
function showLocalNav ()
{
2010-12-27 13:42:00 +00:00
$nav = new GNUsocialPhotoNav ( $this , $this -> user -> nickname );
2010-12-25 14:02:06 +00:00
$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' );
2010-12-28 16:40:58 +00:00
//Image "toolbar"
$cur = common_current_user ();
if ( $this -> photo -> profile_id == $cur -> profile_id ) {
$this -> elementStart ( 'div' , array ( 'id' => 'image_toolbar' ));
$this -> element ( 'a' , array ( 'href' => '/editphoto/' . $this -> photo -> id ), 'Edit' );
$this -> elementEnd ( 'div' );
}
2010-12-29 01:45:25 +00:00
$this -> element ( 'p' , array ( 'class' => 'photodescription' ), $this -> photo -> photo_description );
2010-12-27 02:51:17 +00:00
//This is a hack to hide the top-level comment
2010-12-27 23:12:25 +00:00
$this -> element ( 'style' , array (), " #notice- { $this -> photo -> notice_id } div { display: none } #notice- { $this -> photo -> notice_id } ol li div { display: inline } " );
2014-05-12 10:13:13 +01:00
if ( Event :: handle ( 'StartShowConversation' , array ( $this , $this -> conv , $this -> scoped ))) {
$notices = $this -> conv -> getNotices ();
$nl = new FullThreadedNoticeList ( $notices , $this , $this -> scoped );
$cnt = $nl -> show ();
}
Event :: handle ( 'EndShowConversation' , array ( $this , $this -> conv , $this -> scoped ));
2010-12-25 14:02:06 +00:00
}
}