<?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";
 
        }
 
?>
 
 |