| 
<?php
set_time_limit(0);
 $rewrite_config=false;
 include('config.php');
 
 function row2text($row)
 {
 $text='';
 $flag=0;
 $i=0;
 foreach ($row as $var=>$val)
 {
 if($flag==1)
 $text.=", ";
 elseif($flag==2)
 $text.=",\n";
 $flag=1;
 //Variable
 if(is_numeric($var))
 if($var{0}=='0')
 $text.="'$var'=>";
 else
 {
 if($var!==$i)
 $text.="$var=>";
 $i=$var;
 }
 else
 $text.="'$var'=>";
 $i++;
 //letter
 if(is_array($val))
 {
 $text.="array(".row2text($val).")";
 $flag=2;
 }
 else
 $text.="\"$val\"";
 }
 return($text);
 }
 
 //Check username and private key
 echo "Checking username and private key... ";
 if (empty($openinviter_settings['username']) OR empty($openinviter_settings['private_key']))
 {
 echo "Username or private key missing.Get your own at <a href='http://openinviter.com/register.php'>OpenInviter</a><br>\n";
 exit;
 }
 else echo "<b>OK</b><br>\n";
 
 //Check PHP version
 echo "Checking PHP version... ";
 if (version_compare(PHP_VERSION, '5.0.0', '<')) { echo "<b>NOT OK</b> - OpenInviter requires PHP5, your server has PHP ".PHP_VERSION." installed";exit; }
 else echo "<b>OK</b><br>\n";
 
 //Check support for DOMDocument
 echo "Checking DOMDocument support... ";
 if (!extension_loaded('dom') OR !class_exists('DOMDocument')) { echo "<b>NOT OK</b> - OpenInviter will not run correctly on this system.";exit; }
 else echo "<b>OK</b><br>\n";
 
 //Check transport type
 $transport='curl';
 echo "Checking transport method... ";
 if (!extension_loaded('curl') OR !function_exists('curl_init'))
 {
 $transport='wget';
 passthru("wget --version",$return_var);
 if ($return_var!=0)
 {
 echo "Neither <b>libcurl</b> nor <b>wget</b> is installed.<br>\nYou will not be able to use OpenInviter.";
 exit;
 }
 else echo "<b>wget</b> is installed. Using <b>Wget</b> to handle requests<br>\n";
 }
 else echo "<b>libcurl</b> is installed. Using <b>cURL</b> to handle requests<br>\n";
 if ($openinviter_settings['transport']!=$transport) { $rewrite_config=true;$openinviter_settings['transport']=$transport; }
 
 //Check permisions
 $cookie_path='/tmp';
 echo "Checking write permisions... ";
 if (!is_writable("{$cookie_path}"))
 {
 $cookie_path = session_save_path();
 if (strpos ($cookie_path, ";") !== FALSE)
 $cookie_path = substr ($cookie_path, strpos ($cookie_path, ";")+1);
 if (empty($cookie_path)) $cookie_path='/tmp';
 if (!is_writable("{$cookie_path}"))
 {
 echo "The <b>{$cookie_path}</b> folder is not writable. You will have to manually define a location for logs and temporary files in <b>config.php</b><br>\n";
 exit;
 }
 else echo "<b>{$cookie_path}</b> is writable. Using <b>{$cookie_path}</b> to store cookie files and logs<br>\n";
 }
 else echo "<b>{$cookie_path}</b> is writable. Using <b>{$cookie_path}</b> to store cookie files and logs<br>\n";
 if ($openinviter_settings['cookie_path']!=$cookie_path) { $rewrite_config=true;$openinviter_settings['cookie_path']=$cookie_path; }
 
 //Write new config file if required
 if ($rewrite_config)
 {
 $file_contents="<?php\n";
 $file_contents.="\$openinviter_settings=array(\n".row2text($openinviter_settings).");\n";
 $file_contents.="?>";
 file_put_contents('config.php',$file_contents);
 }
 
 //Instantiate OpenInviter
 include('openinviter.php');
 $inviter=new OpenInviter();
 
 class PostInstall extends OpenInviter_Base
 {
 public function login($user,$pass)
 {
 return;
 }
 public function getMyContacts()
 {
 return;
 }
 public function logout()
 {
 return;
 }
 public function checkVersion()
 {
 $this->init();
 $res=$this->get('http://update.openinviter.com/updater/check_version.php');
 $this->stopPlugin();
 return $res;
 }
 public function check($url)
 {
 $this->init();
 $res=$this->get($url);
 $this->stopPlugin();
 if (empty($res)) return false; else return true;
 }
 }
 
 $checker=new PostInstall();
 $checker->settings=$inviter->settings;
 $checker->service_user='postInstall';
 $checker->service_pass='postInstall';
 $checker->service='postInstall';
 
 //Check version
 echo "Checking for new versions of OpenInviter... ";
 $xml=$checker->checkVersion();
 libxml_use_internal_errors(true);
 $parsed_xml=simplexml_load_string($xml);
 libxml_use_internal_errors(false);
 if (!$parsed_xml)
 echo "Could not connect to server<br>\n";
 else
 {
 $server_version=(string)$parsed_xml;
 $version=$inviter->getVersion();
 if (!$inviter->checkVersion($server_version)) echo "You are using OpenInviter <b>{$version}</b> but version <b>{$server_version}</b> is available for download - <a href='http://openinviter.com/download.php'>Download newer version</a><br>\n";
 else echo "Your OpenInviter software is up-to-date<br>\n";
 }
 
 //Check plugins
 $plugins=$inviter->getPlugins();
 foreach ($plugins as $type=>$dummy)
 foreach ($dummy as $plugin=>$details)
 {
 echo "Checking {$details['name']}... ";
 if ($checker->check($details['check_url'])) echo "<b>OK</b><br>\n"; else echo "<b>NOT OK</b> - This plugin might not work correctly on your system<br>\n";
 }
 ?>
 |