2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
									
										
										
										
											2008-05-20 15:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
									
										
										
										
											2008-05-14 15:26:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Laconica  -  a  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Copyright  ( C )  2008 ,  Controlez - Vous ,  Inc . 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-20 15:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-14 15:26:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  it  under  the  terms  of  the  GNU  Affero  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  Free  Software  Foundation ,  either  version  3  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
									
										
										
										
											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 />. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-17 11:47:01 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  ( ! defined ( 'LACONICA' ))  {  exit ( 1 );  }  
						 
					
						
							
								
									
										
										
										
											2008-05-14 15:26:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Table  Definition  for  profile 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-26 12:18:24 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require_once  INSTALLDIR . '/classes/Memcached_DataObject.php' ;  
						 
					
						
							
								
									
										
										
										
											2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 12:47:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  Profile  extends  Memcached_DataObject  
						 
					
						
							
								
									
										
										
										
											2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ###START_AUTOCODE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* the code below is auto generated do not remove the above tag */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $__table  =  'profile' ;                          // table name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $id ;                               // int(4)  primary_key not_null
 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-10 00:51:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  $nickname ;                         // varchar(64)  multiple_key not_null
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $fullname ;                         // varchar(255)  multiple_key
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 12:47:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  $profileurl ;                       // varchar(255)
 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-10 00:51:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  $homepage ;                         // varchar(255)  multiple_key
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $bio ;                              // varchar(140)  multiple_key
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $location ;                         // varchar(255)  multiple_key
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    public  $created ;                          // datetime()   not_null
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    public  $modified ;                         // timestamp()   not_null default_CURRENT_TIMESTAMP
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Static get */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  staticGet ( $k , $v = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    {  return  Memcached_DataObject :: staticGet ( 'Profile' , $k , $v );  } 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* the code above is auto generated do not remove the tag below */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ###END_AUTOCODE
 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-20 15:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getAvatar ( $width ,  $height = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( is_null ( $height ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $height  =  $width ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  Avatar :: pkeyGet ( array ( 'profile_id'  =>  $this -> id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'width'  =>  $width , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     'height'  =>  $height )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getOriginalAvatar () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $avatar  =  DB_DataObject :: factory ( 'avatar' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> original  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $avatar -> find ( true ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $avatar ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 19:32:15 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  setOriginal ( $filename ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $imagefile  =  new  ImageFile ( $this -> id ,  Avatar :: path ( $filename )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar  =  new  Avatar (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 19:32:15 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $avatar -> width  =  $imagefile -> width ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> height  =  $imagefile -> height ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> mediatype  =  image_type_to_mime_type ( $imagefile -> type ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $avatar -> filename  =  $filename ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> original  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $avatar -> url  =  Avatar :: url ( $filename ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $avatar -> created  =  DB_DataObject_Cast :: dateTime ();  # current time
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX: start a transaction here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 19:32:15 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! $this -> delete_avatars ()  ||  ! $avatar -> insert ())  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            @ unlink ( Avatar :: path ( $filename )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        foreach  ( array ( AVATAR_PROFILE_SIZE ,  AVATAR_STREAM_SIZE ,  AVATAR_MINI_SIZE )  as  $size )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            # We don't do a scaled one if original is our scaled size
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( ! ( $avatar -> width  ==  $size  &&  $avatar -> height  ==  $size ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 19:32:15 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $scaled_filename  =  $imagefile -> resize ( $size ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 19:32:15 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                //$scaled = DB_DataObject::factory('avatar');
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled  =  new  Avatar (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled -> width  =  $size ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled -> height  =  $size ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled -> original  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled -> mediatype  =  image_type_to_mime_type ( $imagefile -> type ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $scaled -> filename  =  $scaled_filename ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $scaled -> url  =  Avatar :: url ( $scaled_filename ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 19:32:15 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $scaled -> created  =  DB_DataObject_Cast :: dateTime ();  # current time
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( ! $scaled -> insert ())  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    return  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $avatar ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 13:57:18 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  delete_avatars ( $original = true ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-25 09:46:01 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar  =  new  Avatar (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar -> find (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        while  ( $avatar -> fetch ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $avatar -> original )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( $original  ==  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $avatar -> delete (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getBestName () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  ( $this -> fullname )  ?  $this -> fullname  :  $this -> nickname ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-07 01:43:58 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # Get latest notice on or before date; default now
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getCurrentNotice ( $dt = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $notice  =  new  Notice (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $dt )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $notice -> whereAdd ( 'created < "'  .  $dt  .  '"' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> orderBy ( 'created DESC, notice.id DESC' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> limit ( 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $notice -> find ( true ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $notice ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-18 17:18:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getTaggedNotices ( $offset = 0 ,  $limit = NOTICES_PER_PAGE ,  $since_id = 0 ,  $before_id = 0 ,  $since = null ,  $tag = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // XXX: I'm not sure this is going to be any faster. It probably isn't.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ids  =  Notice :: stream ( array ( $this ,  '_streamTaggedDirect' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              array (), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              'profile:notice_ids:'  .  $this -> id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              $offset ,  $limit ,  $since_id ,  $before_id ,  $since ,  $tag ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_debug ( print_r ( $ids ,  true )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  Notice :: getStreamByIds ( $ids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  getNotices ( $offset = 0 ,  $limit = NOTICES_PER_PAGE ,  $since_id = 0 ,  $before_id = 0 ,  $since = null ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 11:27:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // XXX: I'm not sure this is going to be any faster. It probably isn't.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ids  =  Notice :: stream ( array ( $this ,  '_streamDirect' ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              array (), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              'profile:notice_ids:'  .  $this -> id , 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-08 11:55:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              $offset ,  $limit ,  $since_id ,  $max_id ,  $since ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 11:27:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  Notice :: getStreamByIds ( $ids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-18 17:18:57 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  _streamTaggedDirect ( $offset ,  $limit ,  $since_id ,  $before_id ,  $since = null ,  $tag = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_debug ( '_streamTaggedDirect()' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice  =  new  Notice (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $query  =  " select id from notice join notice_tag on id=notice_id where tag=' "  .  $notice -> escape ( $tag )  .  " ' and profile_id= "  .  $notice -> escape ( $notice -> profile_id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $since_id  !=  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $query  .=  "  and id >  $since_id " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $before_id  !=  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $query  .=  "  and id <  $before_id " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! is_null ( $since ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $query  .=  "  and created > ' "  .  date ( 'Y-m-d H:i:s' ,  $since )  .  " ' " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $query  .=  ' order by id DESC' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! is_null ( $offset ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $query  .=  "  limit  $offset ,  $limit " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> query ( $query ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ids  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        while  ( $notice -> fetch ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            common_debug ( print_r ( $notice ,  true )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ids []  =  $notice -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $ids ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  _streamDirect ( $offset ,  $limit ,  $since_id ,  $before_id ,  $since  =  null ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 11:27:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice  =  new  Notice (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> selectAdd (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> selectAdd ( 'id' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $since_id  !=  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $notice -> whereAdd ( 'id > '  .  $since_id ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-05-29 16:54:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $max_id  !=  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $notice -> whereAdd ( 'id <= '  .  $max_id ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 11:27:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! is_null ( $since ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $notice -> whereAdd ( 'created > \''  .  date ( 'Y-m-d H:i:s' ,  $since )  .  '\'' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $notice -> orderBy ( 'id DESC' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! is_null ( $offset ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $notice -> limit ( $offset ,  $limit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ids  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $notice -> find ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            while  ( $notice -> fetch ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $ids []  =  $notice -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $ids ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 13:57:18 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  isMember ( $group ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem  =  new  Group_member (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem -> group_id  =  $group -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $mem -> find ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  isAdmin ( $group ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem  =  new  Group_member (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem -> group_id  =  $group -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem -> profile_id  =  $this -> id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $mem -> is_admin  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $mem -> find ())  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 03:13:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  avatarUrl ( $size = AVATAR_PROFILE_SIZE ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $avatar  =  $this -> getAvatar ( $size ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $avatar )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $avatar -> displayUrl (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  Avatar :: defaultImage ( $size ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-07 13:15:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}