2008-09-16 15:53:46 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Laconica ,  the  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-16 15:53:46 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  common  superclass  for  direct  messages  inbox  and  outbox 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  PHP  version  5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  LICENCE :  This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-16 15:53:46 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  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 />. 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 15:13:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ category   Message 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ package    Laconica 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author     Evan  Prodromou  < evan @ controlyourself . ca > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ copyright  2008  Control  Yourself ,  Inc . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ license    http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html  GNU  Affero  General  Public  License  version  3.0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ link       http :// laconi . ca / 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-16 15:53:46 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  ( ! defined ( 'LACONICA' ))  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit ( 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2008-09-16 15:53:46 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								define ( 'MESSAGES_PER_PAGE' ,  20 );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  common  superclass  for  direct  messages  inbox  and  outbox 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 15:13:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ category  Message 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ package   Laconica 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Evan  Prodromou  < evan @ controlyourself . ca > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ license   http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html  GNU  Affero  General  Public  License  version  3.0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ link      http :// laconi . ca / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ see       InboxAction 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ see       OutboxAction 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-23 23:40:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  MailboxAction  extends  CurrentUserDesignAction  
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  $page  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-23 23:40:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  prepare ( $args ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        parent :: prepare ( $args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $nickname    =  common_canonical_nickname ( $this -> arg ( 'nickname' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> user  =  User :: staticGet ( 'nickname' ,  $nickname ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> page  =  $this -> trimmed ( 'page' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! $this -> page )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> page  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-05 16:16:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        common_set_returnto ( $this -> selfUrl ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  output  page  based  on  arguments 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  array  $args  HTTP  arguments  ( from  $_REQUEST ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  handle ( $args ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        parent :: handle ( $args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! $this -> user )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> clientError ( _ ( 'No such user.' ),  404 ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $cur  =  common_current_user (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! $cur  ||  $cur -> id  !=  $this -> user -> id )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> clientError ( _ ( 'Only the user can read their own mailboxes.' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                403 ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showPage (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showLocalNav () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $nav  =  new  PersonalGroupNav ( $this ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $nav -> show (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showNoticeForm () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $message_form  =  new  MessageForm ( $this ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $message_form -> show (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showContent () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $message  =  $this -> getMessages (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $message )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $cnt  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementStart ( 'div' ,  array ( 'id'  => 'notices_primary' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> element ( 'h2' ,  null ,  _ ( 'Notices' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementStart ( 'ul' ,  'notices' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            while  ( $message -> fetch ()  &&  $cnt  <=  MESSAGES_PER_PAGE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $cnt ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( $cnt  >  MESSAGES_PER_PAGE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 15:13:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> showMessage ( $message ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> pagination ( $this -> page  >  1 ,  $cnt  >  MESSAGES_PER_PAGE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              $this -> page ,  $this -> trimmed ( 'action' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              array ( 'nickname'  =>  $this -> user -> nickname )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $message -> free (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            unset ( $message ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-08 00:27:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> element ( 'p' ,  'guide' ,  _ ( 'You have no private messages. You can send private message to engage other users in conversation. People can send you messages for your eyes only.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getMessages () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  returns  the  profile  we  want  to  show  with  the  message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  For  inboxes ,  we  show  the  sender ;  for  outboxes ,  the  recipient . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  Message  $message  The  message  to  get  the  profile  for 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  Profile  The  profile  that  matches  the  message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 15:13:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getMessageProfile ( $message ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  show  a  single  message  in  the  list  format 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     *  XXX :  This  needs  to  be  extracted  out  into  a  MessageList  similar 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  to  NoticeList . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     *  @ param  Message  $message  the  message  to  show 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 15:13:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showMessage ( $message ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'li' ,  array ( 'class'  =>  'hentry notice' , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                         'id'  =>  'message-'  .  $message -> id )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 15:13:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $profile  =  $this -> getMessageProfile ( $message ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  'entry-title' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'span' ,  'vcard author' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'a' ,  array ( 'href'  =>  $profile -> profileurl , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       'class'  =>  'url' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $avatar  =  $profile -> getAvatar ( AVATAR_STREAM_SIZE ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'img' ,  array ( 'src'  =>  ( $avatar )  ? 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                    $avatar -> displayUrl ()  : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    Avatar :: defaultImage ( AVATAR_STREAM_SIZE ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                    'class'  =>  'photo avatar' , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                    'width'  =>  AVATAR_STREAM_SIZE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    'height'  =>  AVATAR_STREAM_SIZE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    'alt'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    ( $profile -> fullname )  ?  $profile -> fullname  : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    $profile -> nickname )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'span' ,  array ( 'class'  =>  'nickname fn' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            $profile -> nickname ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'a' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'span' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // FIXME: URL, image, video, audio
 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'p' ,  array ( 'class'  =>  'entry-content' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> raw ( $message -> rendered ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'p' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $messageurl  =  common_local_url ( 'showmessage' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       array ( 'message'  =>  $message -> id )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // XXX: we need to figure this out better. Is this right?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( strcmp ( $message -> uri ,  $messageurl )  !=  0  && 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            preg_match ( '/^http/' ,  $message -> uri ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $messageurl  =  $message -> uri ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  'entry-content' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dl' ,  'timestamp' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  null ,  _ ( 'Published' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dd' ,  null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $dt  =  common_date_iso8601 ( $message -> created ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'a' ,  array ( 'rel'  =>  'bookmark' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       'href'  =>  $messageurl )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'abbr' ,  array ( 'class'  =>  'published' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'title'  =>  $dt ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               common_date_string ( $message -> created )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'a' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dl' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $message -> source )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementStart ( 'dl' ,  'device' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementStart ( 'dt' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> text ( _ ( 'From' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'dt' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> showSource ( $message -> source ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'dl' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-22 14:50:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Show  the  page  notice 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Shows  instructions  for  the  page 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showPageNotice () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $instr   =  $this -> getInstructions (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $output  =  common_markup_to_html ( $instr ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  'instructions' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> raw ( $output ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Show  the  source  of  the  message 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Returns  either  the  name  ( and  link )  of  the  API  client  that  posted  the  notice , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  or  one  of  other  other  channels . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-23 23:40:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     *  @ param  string  $source  the  source  of  the  message 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-23 23:40:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showSource ( $source ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $source_name  =  _ ( $source ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        switch  ( $source )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  'web' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  'xmpp' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  'mail' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  'omb' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  'api' : 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> element ( 'dd' ,  null ,  $source_name ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ns  =  Notice_source :: staticGet ( $source ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $ns )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> elementStart ( 'dd' ,  null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $this -> element ( 'a' ,  array ( 'href'  =>  $ns -> url , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          'rel'  =>  'external' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                               $ns -> name ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 05:27:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> element ( 'dd' ,  null ,  $source_name ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-20 17:49:47 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-17 17:29:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Mailbox  actions  are  read  only 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ param  array  $args  other  arguments 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ return  boolean 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  isReadOnly ( $args ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-09-16 15:53:46 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}