<?php
/*
* @package LabCMS
* @copyright (c) 2006 Alexander Levin aka Loki (loki_angel@mail.ru)
* @support http://labcms.ru
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
class LabCommon{
	static function check_for_updates()
	{
		include LAB_PATH_KERNEL.'/install/version.php';
		if (version_compare($version, LabConfig::$cfg["version"]["current"], '>'))
		{
			$update=glob(LAB_PATH_ROOT."/updates/".LabConfig::$cfg["version"]["current"]."-*.php");
			if (count($update)==1 && $update)
			{
				include $update[0];
				if ($success)
				{
					if (file_exists(LAB_PATH_MODULES.'/lc_guide/uninstall.sql'))
						if (!Db::parse_mysql_dump(LAB_PATH_MODULES.'/lc_guide/uninstall.sql', false)) die("При обновлении руководства произошла ошибка!");
					if (file_exists(LAB_PATH_MODULES.'/lc_guide/install.sql'))
						if (!Db::parse_mysql_dump(LAB_PATH_MODULES.'/lc_guide/install.sql', false)) die("При обновлении руководства произошла ошибка!");
						
					$ini=array();
					$ini['mysql']=LabConfig::$cfg['mysql'];
					$ini['secure']=LabConfig::$cfg['secure'];
					
					preg_match('/-([\d\.]+)\.php$/i', $update[0], $ver);
					$ini['version']['current']=$ver[1];

					if (self::write_ini_file(LAB_PATH_DATA.'/cms.ini', $ini))
					{
						LabCMS::reset_objects();
						Header("Location:/");
						//echo '<head><meta http-equiv="Refresh" content="0; url=/"></head>'; 
						exit();
					}
				}
				else die("При обновлении версии произошла ошибка!");
			}
			else
			{
				die("Ошибка структуры обновлений!");
			}
		}
	}
	
	static function write_ini_file($file_name, $data)
	{
		$ini='';
		foreach ($data as $section=>$vars)
		{
			$ini.="[".$section."]\r\n";
			foreach ($vars as $var=>$value)
			{
				$ini.=$var.' = "'.$value."\";\r\n";
			}
		}
		if (file_put_contents($file_name, $ini))
		{
			return true;
		}
		else
		{
			die("Ошибка при сохранения файла настроек!");
		}
		return false;
	}
}