/** * Инициализация конфига * @param string $name имя шаблона, если указано - возвращается список всех * переменных * @param string $var необходимая переменная * @return string|array родительский шаблон или список всех переменных */ public function init_cfg($name = null, $var = 'style_parent') { $f = 'main.conf'; $var = $var ? $var : null; if ($name) { $tpldir = ROOT . THEMES_PATH . '/' . $name; if (!class_exists('Config_File', false)) { include_once SMARTY_DIR . 'Config_File.class.php'; } $cfg = new Config_File($tpldir); $cfg->load_file($f); $vars = $cfg->get($f, null, $var); unset($cfg); // Destruct f*cking class return $vars; } if (!$this->conf_inited) { $this->config_load($f); $this->conf_inited = true; } return $this->get_config_vars($var); }
<?php require "../config.inc.php"; require $config['smartydir'] . '/Smarty.class.php'; require $config['smartydir'] . '/Config_File.class.php'; header("Content-Type: text/plain"); $lang = $_GET['lang']; if (!$lang) { die("lang missing"); } $config_dir = $config['basedir'] . "/code/configs"; $engFile = $config_dir . "/eng.conf"; $newFile = $config_dir . "/{$lang}.conf"; if (is_file($newFile)) { $langConf = new Config_File($config_dir); $langConf->load_file($newFile, false); rename($newFile, "{$newFile}.old") || die("could not make backup"); } $eng = file($engFile); $out = fopen($newFile, "wb"); if (!$out) { die("could not write into: {$newFile}"); } $section = NULL; foreach ($eng as $line) { if (preg_match('/"{3}/', $line)) { die('please do not use multiline (""")'); } elseif (preg_match('/^([^=]+)=\\s*(.*)/', $line, $m)) { $key = trim($m[1]); $val = trim($m[2]); //print("$section: $key = $val\n");