2008-05-08 22:16:04 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Laconica ,  the  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-20 15:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Base  class  for  all  actions  ( ~ views ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  PHP  version  5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  LICENCE :  This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-14 15:26:48 -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 . 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-20 15:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-14 15:26:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  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 . 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-20 15:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-14 15:26:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  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 />. 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ category   Action 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package    Laconica 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author     Evan  Prodromou  < evan @ controlyourself . ca > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author     Sarven  Capadisli  < csarven @ 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-05-14 15:26:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-08 22:16:04 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  ( ! defined ( 'LACONICA' ))  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit ( 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require_once  INSTALLDIR . '/lib/form.php' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								require_once  INSTALLDIR . '/lib/htmloutputter.php' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Base  class  for  all  actions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  is  the  base  class  for  all  actions  in  the  package .  An  action  is 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  more  or  less  a  " view "  in  an  MVC  framework . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Actions  are  responsible  for  extracting  and  validating  parameters ;  using 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  model  classes  to  read  and  write  to  the  database ;  and  doing  ouput . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ category  Output 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package   Laconica 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Evan  Prodromou  < evan @ controlyourself . ca > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Sarven  Capadisli  < csarven @ 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       HTMLOutputter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  Action  extends  HTMLOutputter  // lawsuit
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  $args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Action () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // For initializing members of the class
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  prepare ( $argarray ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> args  =&  common_copy_args ( $argarray ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showPage () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> startHTML (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showHead (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showBody (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> endHTML (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showHead () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // XXX: attributes (profile?)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> startElement ( 'head' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showStylesheets (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showScripts (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showOpenSearch (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showFeeds (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showDescription (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> extraHead (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementElement ( 'head' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showTitle () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'title' ,  null , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       sprintf ( _ ( " %s - %s " ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               $this -> title (), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               common_config ( 'site' ,  'name' ))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // SHOULD overload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  title () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  _ ( " Untitled page " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showStylesheets () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'link' ,  array ( 'rel'  =>  'stylesheet' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                     'type'  =>  'text/css' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'href'  =>  theme_path ( 'display.css' )  .  '?version='  .  LACONICA_VERSION , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'media'  =>  'screen, projection, tv' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        foreach  ( array ( 6 , 7 )  as  $ver )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( file_exists ( theme_file ( 'ie' . $ver . '.css' )))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // Yes, IE people should be put in jail.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $xw -> writeComment ( '[if lte IE ' . $ver . ']><link rel="stylesheet" type="text/css" ' . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  'href="' . theme_path ( 'ie' . $ver . '.css' ) . '?version=' . LACONICA_VERSION . '" /><![endif]' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showScripts () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'script' ,  array ( 'type'  =>  'text/javascript' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                       'src'  =>  common_path ( 'js/jquery.min.js' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ' ' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'script' ,  array ( 'type'  =>  'text/javascript' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                       'src'  =>  common_path ( 'js/jquery.form.js' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ' ' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'script' ,  array ( 'type'  =>  'text/javascript' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                       'src'  =>  common_path ( 'js/xbImportNode.js' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ' ' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'script' ,  array ( 'type'  =>  'text/javascript' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                       'src'  =>  common_path ( 'js/util.js?version=' . LACONICA_VERSION )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ' ' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showOpenSearch () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'link' ,  array ( 'rel'  =>  'search' ,  'type'  =>  'application/opensearchdescription+xml' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                     'href'  =>   common_local_url ( 'opensearch' ,  array ( 'type'  =>  'people' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'title'  =>  common_config ( 'site' ,  'name' ) . ' People Search' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'link' ,  array ( 'rel'  =>  'search' ,  'type'  =>  'application/opensearchdescription+xml' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                     'href'  =>   common_local_url ( 'opensearch' ,  array ( 'type'  =>  'notice' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'title'  =>  common_config ( 'site' ,  'name' ) . ' Notice Search' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // MAY overload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showFeeds () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // does nothing by default
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // SHOULD overload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showDescription () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // does nothing by default
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // MAY overload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  extraHead () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // does nothing by default
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showBody () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 17:26:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'body' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'wrap' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showHeader (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showCore (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showFooter (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 17:26:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'wrap' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'body' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showHeader () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'id'  =>  'header' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showLogo (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showPrimaryNav (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showSiteNotice (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showNoticeForm (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showLogo () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'address' ,  array ( 'id'  =>  'site_contact' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 06:34:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                              'class'  =>  'vcard' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'a' ,  array ( 'class'  =>  'url home bookmark' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 06:34:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                        'href'  =>  common_local_url ( 'public' ))); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  (( isset ( $config [ 'site' ][ 'logo' ])  &&  is_string ( $config [ 'site' ][ 'logo' ])  &&  ( strlen ( $config [ 'site' ][ 'logo' ])  >  0 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ||  file_exists ( theme_file ( 'logo.png' ))) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> element ( 'img' ,  array ( 'class'  =>  'logo photo' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        'src'  =>  isset ( $config [ 'site' ][ 'logo' ])  ? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        ( $config [ 'site' ][ 'logo' ])  :  theme_path ( 'logo.png' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                        'alt'  =>  $config [ 'site' ][ 'name' ])); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 06:34:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'span' ,  array ( 'class'  =>  'fn org' ),  $config [ 'site' ][ 'name' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'a' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'address' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showPrimaryNav () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dl' ,  array ( 'id'  =>  'site_nav_global_primary' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  null ,  _ ( 'Primary site navigation' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $user  =  common_current_user (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'ul' ,  array ( 'id'  =>  'nav' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $user )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( 'all' ,  array ( 'nickname'  =>  $user -> nickname )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             _ ( 'Home' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'peoplesearch' ),  _ ( 'Search' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $user )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( 'profilesettings' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             _ ( 'Settings' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( 'invite' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             _ ( 'Invite' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( 'logout' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             _ ( 'Logout' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( 'login' ),  _ ( 'Login' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( ! common_config ( 'site' ,  'closed' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                common_menu_item ( common_local_url ( 'register' ),  _ ( 'Register' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( 'openidlogin' ),  _ ( 'OpenID' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'help' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'Help' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dl' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Revist. Should probably do an hAtom pattern here
 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showSiteNotice () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dl' ,  array ( 'id'  =>  'site_notice' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        'class'  =>  'system_notice' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  null ,  _ ( 'Site notice' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dd' ,  null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // Output a bunch of paragraphs here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // MAY overload if no notice form needed... or direct message box????
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showNoticeForm () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $notice_form  =  new  NoticeForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice_form -> show (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showCore () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 17:30:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'class'  =>  'core' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showLocalNav (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showContentBlock (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showAside (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 17:26:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // SHOULD overload (perhaps this should be a MUST because sometimes it is not used)
 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showLocalNav ( $menu ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $action  =  $this -> trimmed ( 'action' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dl' ,  array ( 'id'  =>  'site_nav_local_views' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  null ,  _ ( 'Local views' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'ul' ,  array ( 'id'  =>  'nav' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        foreach  ( $menu  as  $menuaction  =>  $menudesc )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( $menuaction , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                              isset ( $menudesc [ 2 ])  ?  $menudesc [ 2 ]  :  null ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             $menudesc [ 0 ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             $menudesc [ 1 ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             $action  ==  $menuaction ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dl' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showContentBlock () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 17:26:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'id'  =>  'content' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showPageTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showPageNotice (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showContent (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showPageTitle ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'h1' ,  NULL ,  $this -> title ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // SHOULD overload (unless there's not a notice)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showPageNotice () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dl' ,  array ( 'id'  =>  'page_notice' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        'class'  =>  'system_notice' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  null ,  _ ( 'Page notice' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dd' ,  null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // Output a bunch of paragraphs here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // MUST overload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showContent () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // show the actual content (forms, lists, whatever)
 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 17:26:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'id'  =>  'content_inner' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showAside () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showExportData (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showSections (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // MAY overload if there are feeds
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showExportData () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // is there structure to this?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // list of (visible!) feed links
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // can we reuse list of feeds from showFeeds() ?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // SHOULD overload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showSections ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // for each section, show it
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showFooter () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'id'  =>  'footer' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showSecondaryNav (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showLicenses (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showSecondaryNav () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'ul' ,  array ( 'id'  =>  'nav_sub' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'help' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'Help' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'about' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'About' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'faq' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'FAQ' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'privacy' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'Privacy' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'source' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'Source' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_menu_item ( common_local_url ( 'doc' ,  array ( 'title'  =>  'contact' )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         _ ( 'Contact' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showLicenses () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dl' ,  array ( 'id'  =>  'licenses' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> showLaconicaLicense (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showContentLicense (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dl' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showLaconicaLicense () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  array ( 'id'  =>  'site_laconica_license' ),  _ ( 'Laconica software license' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dd' ,  null ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( common_config ( 'site' ,  'broughtby' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $instr  =  _ ( '**%%site.name%%** is a microblogging service brought to you by [%%site.broughtby%%](%%site.broughtbyurl%%). ' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $instr  =  _ ( '**%%site.name%%** is a microblogging service. ' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $instr  .=  sprintf ( _ ( 'It runs the [Laconica](http://laconi.ca/) microblogging software, version %s, available under the [GNU Affero General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html).' ),  LACONICA_VERSION ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $output  =  common_markup_to_html ( $instr ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_raw ( $output ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // do it
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showContentLicense () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'dt' ,  array ( 'id'  =>  'site_content_license' ),  _ ( 'Laconica software license' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'dd' ,  array ( 'id'  =>  'site_content_license_cc' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'p' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        common_text ( _ ( 'Unless otherwise specified, contents of this site are copyright by the contributors and available under the ' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'a' ,  array ( 'class'  =>  'license' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                  'rel'  =>  'external license' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                  'href'  =>  $config [ 'license' ][ 'url' ]), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       $config [ 'license' ][ 'title' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_text ( _ ( '. Contributors should be attributed by full name or nickname.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'p' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'img' ,  array ( 'id'  =>  'license_cc' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    'src'  =>  $config [ 'license' ][ 'image' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    'alt'  =>  $config [ 'license' ][ 'title' ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // For comparison with If-Last-Modified
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // If not applicable, return null
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  last_modified () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  etag () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  is_readonly () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  arg ( $key ,  $def = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( array_key_exists ( $key ,  $this -> args ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $this -> args [ $key ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $def ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  trimmed ( $key ,  $def = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $arg  =  $this -> arg ( $key ,  $def ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  ( is_string ( $arg ))  ?  trim ( $arg )  :  $arg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Note: argarray ignored, since it's now passed in in prepare()
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  handle ( $argarray = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $lm  =  $this -> last_modified (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $etag  =  $this -> etag (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $etag )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            header ( 'ETag: '  .  $etag ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $lm )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            header ( 'Last-Modified: '  .  date ( DATE_RFC1123 ,  $lm )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $if_modified_since  =  $_SERVER [ 'HTTP_IF_MODIFIED_SINCE' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $if_modified_since )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $ims  =  strtotime ( $if_modified_since ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( $lm  <=  $ims )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    if  ( ! $etag  || 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        $this -> _has_etag ( $etag ,  $_SERVER [ 'HTTP_IF_NONE_MATCH' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        header ( 'HTTP/1.1 304 Not Modified' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        // Better way to do this?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        exit ( 0 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  _has_etag ( $etag ,  $if_none_match ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  ( $if_none_match )  &&  in_array ( $etag ,  explode ( ',' ,  $if_none_match )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  boolean ( $key ,  $def = false ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $arg  =  strtolower ( $this -> trimmed ( $key )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( is_null ( $arg ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $def ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  if  ( in_array ( $arg ,  array ( 'true' ,  'yes' ,  '1' )))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  if  ( in_array ( $arg ,  array ( 'false' ,  'no' ,  '0' )))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $def ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  server_error ( $msg ,  $code = 500 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $action  =  $this -> trimmed ( 'action' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_debug ( " Server error ' $code ' on ' $action ':  $msg " ,  __FILE__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_server_error ( $msg ,  $code ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  client_error ( $msg ,  $code = 400 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $action  =  $this -> trimmed ( 'action' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_debug ( " User error ' $code ' on ' $action ':  $msg " ,  __FILE__ ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_user_error ( $msg ,  $code ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  self_url () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $action  =  $this -> trimmed ( 'action' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $args  =  $this -> args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        unset ( $args [ 'action' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        foreach  ( array_keys ( $_COOKIE )  as  $cookie )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            unset ( $args [ $cookie ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  common_local_url ( $action ,  $args ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  nav_menu ( $menu ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-09 19:10:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $action  =  $this -> trimmed ( 'action' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'ul' ,  array ( 'id'  =>  'nav_views' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-09 19:10:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        foreach  ( $menu  as  $menuaction  =>  $menudesc )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            common_menu_item ( common_local_url ( $menuaction , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                              isset ( $menudesc [ 2 ])  ?  $menudesc [ 2 ]  :  null ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             $menudesc [ 0 ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             $menudesc [ 1 ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             $action  ==  $menuaction ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-09 19:10:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 19:39:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  common_show_header ( $pagetitle ,  $callable = null ,  $data = null ,  $headercall = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        global  $config ,  $xw ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        global  $action ;  /* XXX: kind of cheating here. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_start_html (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'head' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $callable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                call_user_func ( $callable ,  $data ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                call_user_func ( $callable ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'head' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'body' ,  $action ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'id'  =>  'wrap' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'div' ,  array ( 'id'  =>  'content' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Added @id to li for some control. We might want to move this to htmloutputter.php
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  common_menu_item ( $id = null ,  $url ,  $text ,  $title = null ,  $is_selected = false ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $lattrs  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $is_selected )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $lattrs [ 'class' ]  =  'current' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'li' ,  ( is_null ( $id ))  ?  null  :  array ( 'id'  =>  $id ),   $lattrs ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $attrs [ 'href' ]  =  $url ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $title )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $attrs [ 'title' ]  =  $title ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 01:59:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'a' ,  $attrs ,  $text ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 13:41:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Does a little before-after block for next/prev page
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  pagination ( $have_before ,  $have_after ,  $page ,  $action ,  $args = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $have_before  ||  $have_after )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementStart ( 'div' ,  array ( 'class'  =>  'pagination' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementStart ( 'dl' ,  null ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 12:01:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> element ( 'dt' ,  null ,  _ ( 'Pagination' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementStart ( 'dd' ,  null ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementStart ( 'ul' ,  array ( 'class'  =>  'nav' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $have_before )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $pargs  =  array ( 'page'  =>  $page - 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $newargs  =  ( $args )  ?  array_merge ( $args , $pargs )  :  $pargs ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementStart ( 'li' ,  array ( 'class'  =>  'nav_prev' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> element ( 'a' ,  array ( 'href'  =>  common_local_url ( $action ,  $newargs ),  'rel'  =>  'prev' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           _ ( 'After' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $have_after )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $pargs  =  array ( 'page'  =>  $page + 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $newargs  =  ( $args )  ?  array_merge ( $args , $pargs )  :  $pargs ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementStart ( 'li' ,  array ( 'class'  =>  'nav_next' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> element ( 'a' ,  array ( 'href'  =>  common_local_url ( $action ,  $newargs ),  'rel'  =>  'next' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           _ ( 'Before' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $have_before  ||  $have_after )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-14 08:44:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'dd' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'dl' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-13 23:48:05 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> elementEnd ( 'div' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-08 22:16:04 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}