2009-11-14 17:38:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-04-15 08:38:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  StatusNet  -  the  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:12:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Copyright  ( C )  2009 ,  StatusNet ,  Inc . 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-15 08:38:05 +02: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 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  Affero  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  Affero  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  along  with  this  program .   If  not ,  see  < http :// www . gnu . org / licenses />. 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:02 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ category  Installation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package   Installation 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:19:11 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Adrian  Lang  < mail @ adrianlang . de > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Brenda  Wallace  < shiny @ cpan . org > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Brett  Taylor  < brett @ webfroot . co . nz > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Brion  Vibber  < brion @ pobox . com > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    CiaranG  < ciaran @ ciarang . com > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author    Craig  Andrews  < candrews @ integralblue . com > 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-14 17:38:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Eric  Helgeson  < helfire @ Erics - MBP . local > 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 22:28:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Evan  Prodromou  < evan @ status . net > 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:19:11 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Robin  Millette  < millette @ controlyourself . ca > 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-16 11:14:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Sarven  Capadisli  < csarven @ status . net > 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:19:11 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Tom  Adams  < tom @ holizz . com > 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ author    Zach  Copley  < zach @ status . net > 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:19:11 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ license   GNU  Affero  General  Public  License  http :// www . gnu . org / licenses / 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-03 17:36:53 +13:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ version   0.9 . x 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-19 16:01:42 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ link      http :// status . net 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-15 08:38:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								define ( 'INSTALLDIR' ,  dirname ( __FILE__ ));  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$external_libraries = array (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'gettext' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://us.php.net/manual/en/book.gettext.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_function' => 'gettext' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'PEAR' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-pear' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'PEAR.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'PEAR' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'DB' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'DB' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/DB' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-db' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'DB/common.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'DB_common' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'DB_DataObject' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'DB_DataObject' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/DB_DataObject' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'DB/DataObject.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'DB_DataObject' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Console_Getopt' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Console_Getopt' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Console_Getopt' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Console/Getopt.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Console_Getopt' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Facebook API' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://developers.facebook.com/' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'facebook/facebook.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Facebook' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'htmLawed' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'htmLawed/htmLawed.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_function' => 'htmLawed' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'HTTP_Request' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'HTTP_Request' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/HTTP_Request' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-http-request' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'HTTP/Request.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'HTTP_Request' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-28 15:29:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'HTTP_Request2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'HTTP_Request2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/HTTP_Request2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'HTTP/Request2.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'HTTP_Request2' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Mail' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Mail' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Mail' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-mail' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Mail.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Mail' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Mail_mimeDecode' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Mail_mimeDecode' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Mail_mimeDecode' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-mail-mimedecode' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Mail/mimeDecode.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Mail_mimeDecode' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Mime_Type' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Mime_Type' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Mime_Type' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'MIME/Type.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Mime_Type' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Net_URL_Mapper' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Net_URL_Mapper' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Net_URL_Mapper' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Net/URL/Mapper.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Net_URL_Mapper' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-04 13:39:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Net_LDAP2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Net_LDAP2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Net_LDAP2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-net-ldap2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Net/LDAP2.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Net_LDAP2' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Net_Socket' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Net_Socket' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Net_Socket' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-net-socket' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Net/Socket.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Net_Socket' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Net_SMTP' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Net_SMTP' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Net_SMTP' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-net-smtp' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Net/SMTP.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Net_SMTP' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Net_URL' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Net_URL' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Net_URL' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'deb' => 'php-net-url' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Net/URL.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Net_URL' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Net_URL2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Net_URL2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Net_URL2' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Net/URL2.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Net_URL2' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Services_oEmbed' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Services_oEmbed' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Services_oEmbed' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Services/oEmbed.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Services_oEmbed' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Stomp' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://stomp.codehaus.org/PHP' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Stomp.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Stomp' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'System_Command' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'System_Command' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/System_Command' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'System/Command.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'System_Command' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'XMPPHP' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://code.google.com/p/xmpphp' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'XMPPHP/XMPP.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'XMPPHP_XMPP' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'PHP Markdown' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://www.michelf.com/projects/php-markdown/' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'markdown.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Markdown_Parser' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'OAuth' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://code.google.com/p/oauth-php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'OAuth.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'OAuthRequest' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name' => 'Validate' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'pear' => 'Validate' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'url' => 'http://pear.php.net/package/Validate' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'include' => 'Validate.php' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_class' => 'Validate' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								);  
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$dbModules  =  array (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'mysql'  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name'  =>  'MySQL' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_module'  =>  'mysql' ,  // mysqli?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'installer'  =>  'mysql_db_installer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'pgsql'  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'name'  =>  'PostgreSQL' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'check_module'  =>  'pgsql' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'installer'  =>  'pgsql_db_installer' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								);  
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:44:22 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  the  actual  installation . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  call  libraries  are  present ,  then  install 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:44:22 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  main ()  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:48 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! checkPrereqs ())  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! empty ( $_GET [ 'checklibs' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        showLibs (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:48 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $_SERVER [ 'REQUEST_METHOD' ]  ==  'POST' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            handlePost (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:29:10 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  checks  if  an  external  libary  is  present 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $external_library  Name  of  library 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  boolean  indicates  if  library  present 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  haveExternalLibrary ( $external_library )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-24 17:22:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( isset ( $external_library [ 'include' ])  &&  ! haveIncludeFile ( $external_library [ 'include' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:48 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( isset ( $external_library [ 'check_function' ])  &&  !  function_exists ( $external_library [ 'check_function' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:48 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( isset ( $external_library [ 'check_class' ])  &&  !  class_exists ( $external_library [ 'check_class' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:15:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Attempt to include a PHP file and report if it worked, while
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// suppressing the annoying warning messages on failure.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  haveIncludeFile ( $filename )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $old  =  error_reporting ( error_reporting ()  &  ~ E_WARNING ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ok  =  include_once ( $filename ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    error_reporting ( $old ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  $ok ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:29:10 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Check  if  all  is  ready  for  installation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  checkPrereqs ()  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $pass  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-18 16:21:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( file_exists ( INSTALLDIR . '/config.php' ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								         printf ( '<p class="error">Config file "config.php" already exists.</p>' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-20 16:39:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $pass  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-17 17:54:37 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( version_compare ( PHP_VERSION ,  '5.2.3' ,  '<' ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        printf ( '<p class="error">Require PHP version 5.2.3 or greater.</p>' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $pass  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-05 11:27:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Look for known library bugs
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $str  =  " abcdefghijklmnopqrstuvwxyz " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $replaced  =  preg_replace ( '/[\p{Cc}\p{Cs}]/u' ,  '*' ,  $str ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $str  !=  $replaced )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        printf ( '<p class="error">PHP is linked to a version of the PCRE library '  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               'that does not support Unicode properties. '  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               'If you are running Red Hat Enterprise Linux / '  . 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-08 13:38:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								               'CentOS 5.3 or earlier, see <a href="'  . 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-05 11:27:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								               'http://status.net/wiki/Red_Hat_Enterprise_Linux#PCRE_library'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               '">our documentation page</a> on fixing this.</p>' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $pass  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-24 04:04:28 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $reqs  =  array ( 'gd' ,  'curl' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-30 08:09:30 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  'xmlwriter' ,  'mbstring' ,  'xml' ,  'dom' ,  'simplexml' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach  ( $reqs  as  $req )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! checkExtension ( $req ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            printf ( '<p class="error">Cannot load required extension: <code>%s</code></p>' ,  $req ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $pass  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Make sure we have at least one database module available
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    global  $dbModules ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $missingExtensions  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach  ( $dbModules  as  $type  =>  $info )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! checkExtension ( $info [ 'check_module' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $missingExtensions []  =  $info [ 'check_module' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( count ( $missingExtensions )  ==  count ( $dbModules ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $req  =  implode ( ', ' ,  $missingExtensions ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        printf ( '<p class="error">Cannot find mysql or pgsql extension. You need one or the other.' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $pass  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! is_writable ( INSTALLDIR ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        printf ( '<p class="error">Cannot write config file to: <code>%s</code></p>' ,  INSTALLDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        printf ( '<p>On your server, try this command: <code>chmod a+w %s</code>' ,  INSTALLDIR ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $pass  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-24 04:04:28 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Check the subdirs used for file uploads
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $fileSubdirs  =  array ( 'avatar' ,  'background' ,  'file' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach  ( $fileSubdirs  as  $fileSubdir )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $fileFullPath  =  INSTALLDIR . " / $fileSubdir / " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! is_writable ( $fileFullPath ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            printf ( '<p class="error">Cannot write to %s directory: <code>%s</code></p>' ,  $fileSubdir ,  $fileFullPath ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            printf ( '<p>On your server, try this command: <code>chmod a+w %s</code></p>' ,  $fileFullPath ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $pass  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:05:14 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  $pass ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:29:10 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Checks  if  a  php  extension  is  both  installed  and  loaded 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $name  of  extension  to  check 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  boolean  whether  extension  is  installed  and  loaded 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  checkExtension ( $name )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-01 20:04:36 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( extension_loaded ( $name ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  elseif  ( function_exists ( 'dl' )  &&  ini_get ( 'enable_dl' )  &&  ! ini_get ( 'safe_mode' ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-03 17:36:53 +13:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // dl will throw a fatal error if it's disabled or we're in safe mode.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // More fun, it may not even exist under some SAPIs in 5.3.0 or later...
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $soname  =  $name  .  '.'  .  PHP_SHLIB_SUFFIX ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( PHP_SHLIB_SUFFIX  ==  'dll' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $soname  =  " php_ "  .  $soname ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  @ dl ( $soname ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-01 20:04:36 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 21:01:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:29:10 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Show  list  of  libraries 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  void 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  showLibs ()  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    global  $external_libraries ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $present_libraries = array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $absent_libraries = array (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    foreach  ( $external_libraries  as  $external_library )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:48 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( haveExternalLibrary ( $external_library ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $present_libraries [] = $external_library ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:43:48 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $absent_libraries [] = $external_library ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo <<< E_O_T 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < div  class = " instructions " > 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-13 12:13:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < p > StatusNet  comes  bundled  with  a  number  of  libraries  required  for  the  application  to  work .  However ,  it  is  best  that  you  use  PEAR  or  you  distribution  to  manage 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        libraries  instead ,  as  they  tend  to  provide  security  updates  faster ,  and  may  offer  improved  performance .</ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < p > On  Debian  based  distributions ,  such  as  Ubuntu ,  use  a  package  manager  ( such  as  & quot ; aptitude & quot ;,  & quot ; apt - get & quot ;,  and  & quot ; synaptic & quot ;)  to  install  the  package  listed .</ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < p > On  RPM  based  distributions ,  such  as  Red  Hat ,  Fedora ,  CentOS ,  Scientific  Linux ,  Yellow  Dog  Linux  and  Oracle  Enterprise  Linux ,  use  a  package  manager  ( such  as  & quot ; yum & quot ;,  & quot ; apt - rpm & quot ;,  and  & quot ; up2date & quot ;)  to  install  the  package  listed .</ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < p > On  servers  without  a  package  manager  ( such  as  Windows ),  or  if  the  library  is  not  packaged  for  your  distribution ,  you  can  use  PHP ' s  PEAR  to  install  the  library .  Simply  run  & quot ; pear  install  & lt ; name & gt ; & quot ; .</ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < h2 > Absent  Libraries </ h2 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < ul  id = " absent_libraries " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								E_O_T ;  
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    foreach  ( $absent_libraries  as  $library )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        echo  '<li>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $library [ 'url' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-13 12:13:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  '<a href="' . $library [ 'url' ] . '">' . htmlentities ( $library [ 'name' ]) . '</a>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  htmlentities ( $library [ 'name' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  '<ul>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $library [ 'deb' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  '<li class="deb package">deb: <a href="apt:'  .  urlencode ( $library [ 'deb' ])  .  '">'  .  htmlentities ( $library [ 'deb' ])  .  '</a></li>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $library [ 'rpm' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  '<li class="rpm package">rpm: '  .  htmlentities ( $library [ 'rpm' ])  .  '</li>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $library [ 'pear' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  '<li class="pear package">pear: '  .  htmlentities ( $library [ 'pear' ])  .  '</li>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  '</ul>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo <<< E_O_T 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < h2 > Installed  Libraries </ h2 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < ul  id = " present_libraries " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								E_O_T ;  
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    foreach  ( $present_libraries  as  $library )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        echo  '<li>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-23 09:45:22 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $library [ 'url' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-13 12:13:11 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  '<a href="' . $library [ 'url' ] . '">' . htmlentities ( $library [ 'name' ]) . '</a>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:29:10 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 19:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            echo  htmlentities ( $library [ 'name' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  '</li>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo <<< E_O_T 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								E_O_T ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Helper  class  for  building  form 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  Posted  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  value ( $name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( isset ( $_POST [ $name ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  htmlspecialchars ( strval ( $_POST [ $name ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  showForm ()  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    global  $dbModules ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $post  =  new  Posted (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $dbRadios  =  '' ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( isset ( $_POST [ 'dbtype' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $dbtype  =  $_POST [ 'dbtype' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $dbtype  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    foreach  ( $dbModules  as  $type  =>  $info )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( checkExtension ( $info [ 'check_module' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( $dbtype  ==  null  ||  $dbtype  ==  $type )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $checked  =  'checked="checked" ' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $dbtype  =  $type ;  // if we didn't have one checked, hit the first
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $checked  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $dbRadios  .=  " <input type= \" radio \"  name= \" dbtype \"  id= \" dbtype- $type\ "  value = \ " $type\ "  $checked />  $info [ name ] < br  /> \n " ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-17 00:05:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo <<< E_O_T 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        </ ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ dd > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</ dl >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< form  method = " post "  action = " install.php "  class = " form_settings "  id = " form_install " >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < fieldset > 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 11:32:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < fieldset  id = " settings_site " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < legend > Site  settings </ legend > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < ul  class = " form_data " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " sitename " > Site  name </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " text "  id = " sitename "  name = " sitename "  value = " { $post -> value ( 'sitename' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > The  name  of  your  site </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " fancy-enable " > Fancy  URLs </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " radio "  name = " fancy "  id = " fancy-enable "  value = " enable "  checked = 'checked'  />  enable < br  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " radio "  name = " fancy "  id = " fancy-disable "  value = " "  />  disable < br  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide "  id = 'fancy-form_guide' > Enable  fancy  ( pretty )  URLs .  Auto - detection  failed ,  it  depends  on  Javascript .</ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            </ ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        </ fieldset > 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 11:32:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < fieldset  id = " settings_db " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < legend > Database  settings </ legend > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < ul  class = " form_data " > 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 11:35:18 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " host " > Hostname </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " text "  id = " host "  name = " host "  value = " { $post -> value ( 'host' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Database  hostname </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 11:32:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " dbtype " > Type </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    $dbRadios 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Database  type </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " database " > Name </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " text "  id = " database "  name = " database "  value = " { $post -> value ( 'database' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Database  name </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " dbusername " > DB  username </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " text "  id = " dbusername "  name = " dbusername "  value = " { $post -> value ( 'dbusername' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Database  username </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " dbpassword " > DB  password </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " password "  id = " dbpassword "  name = " dbpassword "  value = " { $post -> value ( 'dbpassword' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Database  password  ( optional ) </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            </ ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        </ fieldset > 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-24 04:31:52 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 11:32:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < fieldset  id = " settings_admin " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < legend > Administrator  settings </ legend > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < ul  class = " form_data " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " admin_nickname " > Administrator  nickname </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " text "  id = " admin_nickname "  name = " admin_nickname "  value = " { $post -> value ( 'admin_nickname' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Nickname  for  the  initial  StatusNet  user  ( administrator ) </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " admin_password " > Administrator  password </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " password "  id = " admin_password "  name = " admin_password "  value = " { $post -> value ( 'admin_password' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Password  for  the  initial  StatusNet  user  ( administrator ) </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " admin_password2 " > Confirm  password </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  type = " password "  id = " admin_password2 "  name = " admin_password2 "  value = " { $post -> value ( 'admin_password2' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < label  for = " admin_email " > Administrator  e - mail </ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < input  id = " admin_email "  name = " admin_email "  value = " { $post -> value ( 'admin_email' ) } "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < p  class = " form_guide " > Optional  email  address  for  the  initial  StatusNet  user  ( administrator ) </ p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            </ ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        </ fieldset > 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < input  type = " submit "  name = " submit "  class = " submit "  value = " Submit "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ fieldset > 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								</ form >  
						 
					
						
							
								
									
										
										
										
											2009-05-17 00:05:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								E_O_T ;  
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  updateStatus ( $status ,  $error = false )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-19 16:01:42 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  '<li'  .  ( $error  ?  ' class="error"' :  ''  )  .  " > $status </li> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function  handlePost ()  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-05-17 00:05:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $host      =  $_POST [ 'host' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-23 17:37:01 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $dbtype    =  $_POST [ 'dbtype' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $database  =  $_POST [ 'database' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $username  =  $_POST [ 'dbusername' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $password  =  $_POST [ 'dbpassword' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $sitename  =  $_POST [ 'sitename' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-17 00:05:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $fancy     =  ! empty ( $_POST [ 'fancy' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $adminNick  =  $_POST [ 'admin_nickname' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $adminPass  =  $_POST [ 'admin_password' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $adminPass2  =  $_POST [ 'admin_password2' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $adminEmail  =  $_POST [ 'admin_email' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $server  =  $_SERVER [ 'HTTP_HOST' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $path  =  substr ( dirname ( $_SERVER [ 'PHP_SELF' ]),  1 ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    echo  <<< STR 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < dl  class = " system_notice " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < dt > Page  notice </ dt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < dd > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < ul > 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								STR ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $fail  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-18 16:21:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 10:12:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( empty ( $host ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " No hostname specified. " ,  true ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 10:12:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( empty ( $database ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " No database specified. " ,  true ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 10:12:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( empty ( $username ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " No username specified. " ,  true ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 10:12:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( empty ( $sitename ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " No sitename specified. " ,  true ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 10:12:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( empty ( $adminNick ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " No initial StatusNet user nickname specified. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( empty ( $adminPass ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " No initial StatusNet user password specified. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $adminPass  !=  $adminPass2 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Administrator passwords do not match. Did you mistype? " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $fail  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( $fail )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 17:53:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    global  $dbModules ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:08:05 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $db  =  call_user_func ( $dbModules [ $dbtype ][ 'installer' ],  $host ,  $database ,  $username ,  $password ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! $db )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // database connection failed, do not move on to create config file.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    updateStatus ( " Writing config file... " ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-14 17:38:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $res  =  writeConf ( $sitename ,  $server ,  $path ,  $fancy ,  $db ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! $res )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Can't write config file. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-04 05:47:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // Okay, cross fingers and try to register an initial user
 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( registerInitialUser ( $adminNick ,  $adminPass ,  $adminEmail ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        updateStatus ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " An initial user with the administrator role has been created. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " Could not create initial StatusNet user (administrator). " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        TODO  https  needs  to  be  considered 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $link  =  " http:// " . $server . '/' . $path ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:12:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    updateStatus ( " StatusNet has been installed at  $link " ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    updateStatus ( 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 09:50:54 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        " <strong>DONE!</strong> You can visit your <a href=' $link '>new StatusNet site</a> (login as ' $adminNick '). If this is your first StatusNet install, you may want to poke around our <a href='http://status.net/wiki/Getting_started'>Getting Started guide</a>. " 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  Pgsql_Db_installer ( $host ,  $database ,  $username ,  $password )  
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:08:05 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $connstring  =  " dbname= $database  host= $host  user= $username " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //No password would mean trust authentication used.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! empty ( $password ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $connstring  .=  "  password= $password " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    updateStatus ( " Starting installation... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    updateStatus ( " Checking database... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $conn  =  pg_connect ( $connstring ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $conn  === false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Failed to connect to database:  $connstring " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //ensure database encoding is UTF8
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $record  =  pg_fetch_object ( pg_query ( $conn ,  'SHOW server_encoding' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $record -> server_encoding  !=  'UTF8' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " StatusNet requires UTF8 character encoding. Your database is  " .  htmlentities ( $record -> server_encoding )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    updateStatus ( " Running database script... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //wrap in transaction;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pg_query ( $conn ,  'BEGIN' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $res  =  runDbScript ( INSTALLDIR . '/db/statusnet_pg.sql' ,  $conn ,  'pgsql' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Can't run database script. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach  ( array ( 'sms_carrier'  =>  'SMS carrier' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-23 18:01:03 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                'notice_source'  =>  'notice source' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'foreign_services'  =>  'foreign service' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          as  $scr  =>  $name )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        updateStatus ( sprintf ( " Adding %s data to database... " ,  $name )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $res  =  runDbScript ( INSTALLDIR . '/db/' . $scr . '.sql' ,  $conn ,  'pgsql' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            updateStatus ( sprintf ( " Can't run %d script. " ,  $name ),  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pg_query ( $conn ,  'COMMIT' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( empty ( $password ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $sqlUrl  =  " pgsql:// $username @ $host / $database " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:31:44 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $sqlUrl  =  " pgsql:// $username : $password @ $host / $database " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $db  =  array ( 'type'  =>  'pgsql' ,  'database'  =>  $sqlUrl ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  $db ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-23 17:43:46 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  Mysql_Db_installer ( $host ,  $database ,  $username ,  $password )  
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:08:05 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    updateStatus ( " Starting installation... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    updateStatus ( " Checking database... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $conn  =  mysql_connect ( $host ,  $username ,  $password ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! $conn )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Can't connect to server ' $host ' as ' $username '. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    updateStatus ( " Changing to database... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $res  =  mysql_select_db ( $database ,  $conn ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! $res )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Can't change to database. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    updateStatus ( " Running database script... " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $res  =  runDbScript ( INSTALLDIR . '/db/statusnet.sql' ,  $conn ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        updateStatus ( " Can't run database script. " ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach  ( array ( 'sms_carrier'  =>  'SMS carrier' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-23 17:43:46 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                'notice_source'  =>  'notice source' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'foreign_services'  =>  'foreign service' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          as  $scr  =>  $name )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        updateStatus ( sprintf ( " Adding %s data to database... " ,  $name )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $res  =  runDbScript ( INSTALLDIR . '/db/' . $scr . '.sql' ,  $conn ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            updateStatus ( sprintf ( " Can't run %d script. " ,  $name ),  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            showForm (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $sqlUrl  =  " mysqli:// $username : $password @ $host / $database " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $db  =  array ( 'type'  =>  'mysql' ,  'database'  =>  $sqlUrl ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  $db ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-14 17:38:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  writeConf ( $sitename ,  $server ,  $path ,  $fancy ,  $db )  
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // assemble configuration file in a string
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $cfg  =   " <?php \n " . 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 10:41:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " if (!defined('STATUSNET') && !defined('LACONICA'))  {  exit(1); } \n \n " . 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // site name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " \$ config['site']['name'] = ' $sitename '; \n \n " . 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // site location
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " \$ config['site']['server'] = ' $server '; \n " . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " \$ config['site']['path'] = ' $path ';  \n \n " . 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // checks if fancy URLs are enabled
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( $fancy  ?  " \$ config['site']['fancy'] = true; \n \n " : '' ) . 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:45:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // database
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " \$ config['db']['database'] = ' { $db [ 'database' ] } '; \n \n " . 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-28 21:04:15 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ( $db [ 'type' ]  ==  'pgsql'  ?  " \$ config['db']['quote_identifiers'] = true; \n \n " : '' ) . 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-30 18:53:45 +13:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " \$ config['db']['type'] = ' { $db [ 'type' ] } '; \n \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // write configuration file out to install directory
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $res  =  file_put_contents ( INSTALLDIR . '/config.php' ,  $cfg ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  $res ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Install  schema  into  the  database 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:08:05 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ param  string  $filename  location  of  database  schema  file 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  dbconn  $conn      connection  to  database 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $type      type  of  database ,  currently  mysql  or  pgsql 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-15 16:31:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-13 18:22:32 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ return  boolean  -  indicating  success  or  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:19:11 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  runDbScript ( $filename ,  $conn ,  $type  =  'mysqli' )  
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $sql  =  trim ( file_get_contents ( $filename )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $stmts  =  explode ( ';' ,  $sql ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach  ( $stmts  as  $stmt )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $stmt  =  trim ( $stmt ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! mb_strlen ( $stmt ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:58:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // FIXME: use PEAR::DB or PDO instead of our own switch
 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        switch  ( $type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-14 19:19:11 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        case  'mysqli' : 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $res  =  mysql_query ( $stmt ,  $conn ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:58:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $error  =  mysql_error (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        case  'pgsql' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $res  =  pg_query ( $conn ,  $stmt ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:58:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $error  =  pg_last_error (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 14:17:55 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            updateStatus ( " runDbScript() error: unknown database type  " .  $type  . "  provided. " ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-23 18:01:03 +12:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $res  ===  false )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-27 08:58:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            updateStatus ( " ERROR ( $error ) for SQL ' $stmt ' " ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 20:33:22 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  $res ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  registerInitialUser ( $nickname ,  $password ,  $email )  
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    define ( 'STATUSNET' ,  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    define ( 'LACONICA' ,  true );  // compatibility
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    require_once  INSTALLDIR  .  '/lib/common.php' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 07:45:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $data  =  array ( 'nickname'  =>  $nickname , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  'password'  =>  $password , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  'fullname'  =>  $nickname ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( $email )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $data [ 'email' ]  =  $email ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $user  =  User :: register ( $data ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( empty ( $user ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // give initial user carte blanche
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $user -> grantRole ( 'owner' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $user -> grantRole ( 'moderator' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $user -> grantRole ( 'administrator' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-04 11:00:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Attempt to do a remote subscribe to update@status.net
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Will fail if instance is on a private network.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( class_exists ( 'Ostatus_profile' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $oprofile  =  Ostatus_profile :: ensureProfile ( 'http://update.status.net/' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Subscription :: start ( $user -> getProfile (),  $oprofile -> localProfile ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            updateStatus ( " Set up subscription to <a href='http://update.status.net/'>update@status.net</a>. " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  catch  ( Exception  $e )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            updateStatus ( " Could not set up subscription to <a href='http://update.status.net/'>update@status.net</a>. " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:26:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-28 17:42:27 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								?> 
  
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< ? php  echo " <? " ;  ?>  xml version="1.0" encoding="UTF-8" <?php echo "?>"; ?>
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<! DOCTYPE  html  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								PUBLIC  " -//W3C//DTD XHTML 1.0 Strict//EN "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< html  xmlns = " http://www.w3.org/1999/xhtml "  xml : lang = " en_US "  lang = " en_US " >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < head > 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:12:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < title > Install  StatusNet </ title > 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-22 16:38:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< link  rel = " shortcut icon "  href = " favicon.ico " /> 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:59:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < link  rel = " stylesheet "  type = " text/css "  href = " theme/default/css/display.css "  media = " screen, projection, tv " /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        <!-- [ if  IE ] >< link  rel = " stylesheet "  type = " text/css "  href = " theme/base/css/ie.css "  /><! [ endif ] --> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        <!-- [ if  lte  IE  6 ] >< link  rel = " stylesheet "  type = " text/css "  theme / base / css / ie6 . css "  /><![endif]-->
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        <!-- [ if  IE ] >< link  rel = " stylesheet "  type = " text/css "  href = " theme/default/css/ie.css "  /><! [ endif ] --> 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-22 16:38:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < script  src = " js/jquery.min.js " ></ script > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < script  src = " js/install.js " ></ script > 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    </ head > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < body  id = " install " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        < div  id = " wrap " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < div  id = " header " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < address  id = " site_contact "  class = " vcard " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    < a  class = " url home bookmark "  href = " . " > 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:12:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                        < img  class = " logo photo "  src = " theme/default/logo.png "  alt = " StatusNet " /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        < span  class = " fn org " > StatusNet </ span > 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    </ a > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                </ address > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            </ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            < div  id = " core " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < div  id = " content " > 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:59:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                     < div  id = " content_inner " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        < h1 > Install  StatusNet </ h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-15 08:38:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< ? php  main ();  ?> 
  
						 
					
						
							
								
									
										
										
										
											2010-03-03 23:59:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   </ div > 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-01 03:50:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                </ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            </ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        </ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ body > 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-15 08:38:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								</ html >