function doajax() { $a = patch::init(); if (empty($a)) { echo $_GET['callback'] . "({state:'0'})"; return; } switch ($this->iCMS->config['autopatch']) { case "1": //自动下载,安装时询问 patch::download($a[1]); echo $_GET['callback'] . "({state:'1',msg:'" . $a[3] . "发现iCMS最新版本<br />iCMS " . $a[0] . " [" . $a[1] . "]<br /><br />您当前使用的iCMS版本<br />iCMS " . iCMS_VER . " [" . iCMS_RELEASE . "]<br /><br />新版本已经下载完成!! 是否现在更新?'})"; break; case "2": //不自动下载更新,有更新时提示 echo $_GET['callback'] . "({state:'2',msg:'" . $a[3] . "发现iCMS最新版本<br />iCMS " . $a[0] . " [" . $a[1] . "]<br /><br />您当前使用的iCMS版本<br />iCMS " . iCMS_VER . " [" . iCMS_RELEASE . "]<br /><br />请更新你的iCMS!!!'})"; break; } }
public static function isApplicable() { patch::$isPathchable = false; $con = Propel::getConnection("workflow"); $stmt = $con->prepareStatement("describe TASK;"); $rs = $stmt->executeQuery(); $rs->next(); while ($row = $rs->getRow()) { if ($row['Field'] == "TAS_GROUP_VARIABLE") { $version = System::getVersion(); $version = explode('-', $version); if ($version[0] == '2.5.1') { echo "Version " . $version[0] . " Patch\n"; patch::$isPathchable = true; } break; } $rs->next(); } return patch::$isPathchable; }
// Убираю из $path папку "templates" и вставляю файл в получившийся относительный путь. file_put_contents($path, $content); } } /** * Производит замену шаблонных переменных на заданные параметры. */ public static function replace_templates($templates, $params) { foreach ($templates as $key => $content) { if (!isset($params[$key]) or !is_array($params[$key])) { continue; } $templates[$key] = strtr($content, $params[$key]); } return $templates; } /** * Главная функция, что-то вроде main(); */ public static function run() { $templates = self::read_templates(); $params = self::read_params($templates); $r_templates = self::replace_templates($templates, $params); self::write_templates($r_templates); } } // Погнали!!! patch::run();
<?php include_once realpath('../../php_for_patches/patch_lib.php'); // Погнали!!! patch::run(__DIR__);