X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fglobals.inc.php.in;h=1e15c817f455a3acdc616aefaca9d0d1eaf67d15;hb=47fa97fed308292ab5e7bed6f870b39f55747aa8;hp=4fc17fa7b6604591d0ed6316561b0dafd9a39f49;hpb=08fa70684fd1332178cddb6b318151335fb4506c;p=platal.git diff --git a/include/globals.inc.php.in b/include/globals.inc.php.in index 4fc17fa..1e15c81 100644 --- a/include/globals.inc.php.in +++ b/include/globals.inc.php.in @@ -19,16 +19,10 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -class PlatalGlobals +class PlatalGlobals extends PlGlobals { - public $session; - /** The x.org version */ public $version = '@VERSION@'; - public $debug = 0; - public $mode = 'rw'; // 'rw' => read/write, - // 'r' => read/only - // '' => site down /** db params */ public $dbdb = 'x4dat'; @@ -41,158 +35,11 @@ class PlatalGlobals public $skin; public $register_skin; - /** paths */ - public $baseurl; - public $spoolroot; - - public $locale; - public $timezone; - - public function __construct($sess) - { - $this->session = $sess; - $this->spoolroot = dirname(dirname(__FILE__)); - - $this->read_config(); - if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) { - $base = empty($_SERVER['HTTPS']) ? 'http://' : 'https://'; - $this->baseurl = @trim($base.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']), '/'); - } - - $this->setlocale(); - } - - private function read_ini_file($filename) - { - $array = parse_ini_file($filename, true); - if (!is_array($array)) { - return; - } - foreach ($array as $cat => $conf) { - $c = strtolower($cat); - foreach ($conf as $k => $v) { - if ($c == 'core' && property_exists($this, $k)) { - $this->$k=$v; - } else { - if (!isset($this->$c)) { - $this->$c = new stdClass; - } - $this->$c->$k = $v; - } - } - } - } - - private function read_config() - { - $this->read_ini_file($this->spoolroot.'/configs/platal.ini'); - $this->read_ini_file($this->spoolroot.'/configs/platal.conf'); - if (file_exists($this->spoolroot.'/spool/conf/platal.dynamic.conf')) { - $this->read_ini_file($this->spoolroot.'/spool/conf/platal.dynamic.conf'); - } - } - - /** Writes an ini file separated in categories - * @param filename the name of the file to write (overwrite existing) - * @param categories an array of categories (array of keys and values) - */ - private static function write_ini_file($filename, &$categories) - { - // [category] - // key = value - $f = fopen($filename, 'w'); - foreach ($categories as $cat => $conf) { - fwrite($f, '; {{{ '.$cat."\n\n"); - fwrite($f, '['.$cat.']'."\n\n"); - foreach ($conf as $k => $v) { - fwrite($f, $k.' = "'.str_replace('"','\\"',$v).'"'."\n"); - } - fwrite($f, "\n".'; }}}'."\n"); - } - fwrite($f, '; vim:set syntax=dosini foldmethod=marker:'."\n"); - fclose($f); - } - - /** Change dynamic config file - * @param conf array of keys and values to add or replace - * @param category name of category to change - * - * Opens the dynamic conf file and set values from conf in specified - * category. Updates config vars too. - */ - public function change_dynamic_config($conf, $category = 'Core') - { - $dynamicfile = $this->spoolroot.'/spool/conf/platal.dynamic.conf'; - if (file_exists($dynamicfile)) { - $array = parse_ini_file($dynamicfile, true); - } else { - $array = null; - } - if (!is_array($array)) { - // dynamic conf is empty - $array = array($category => $conf); - } else { - // looks for a category that looks the same (case insensitive) - $same = false; - foreach ($array as $m => &$c) { - if (strtolower($m) == strtolower($category)) { - $same = $m; - break; - } - } - if (!$same) { - // this category doesn't exist yet - $array[$category] = $conf; - } else { - // this category already exists - $conflower = array(); - foreach ($conf as $k => $v) { - $conflower[strtolower($k)] = $v; - } - // $conflower is now same as $conf but with lower case keys - // replaces values of keys that already exists - foreach ($array[$same] as $k => $v) { - if (isset($conflower[strtolower($k)])) { - $array[$same][$k] = $conflower[strtolower($k)]; - unset($conflower[strtolower($k)]); - } - } - // add new keys - foreach ($conf as $k => $v) { - if (isset($conflower[strtolower($k)])) { - $array[$same][$k] = $v; - } - } - } - } - // writes the file over - PlatalGlobals::write_ini_file($dynamicfile, $array); - // rereads the new config to correctly set vars - $this->read_ini_file($dynamicfile); - } - - public function bootstrap($conf, $callback, $category = 'Core') - { - $bootstrap = false; - $category = strtolower($category); - foreach ($conf as $key) { - if (!isset($this->$category->$key)) { - $bootstrap = true; - break; - } - } - if ($bootstrap) { - call_user_func($callback); - } - } - - private function setlocale() + public function __construct() { - setlocale(LC_MESSAGES, $this->locale); - setlocale(LC_TIME, $this->locale); - setlocale(LC_CTYPE, $this->locale); - date_default_timezone_set($this->timezone); - mb_internal_encoding("UTF-8"); + parent::__construct(array('platal.ini', 'platal.conf')); + $this->bootstrap(array('NbIns'), 'update_NbIns'); + $this->bootstrap(array('NbValid'), 'update_NbValid'); } public function asso($key=null) @@ -206,7 +53,9 @@ class PlatalGlobals } if ($gp) { - $res = XDB::query('SELECT a.*, d.nom AS domnom, FIND_IN_SET(\'wiki_desc\', a.flags) AS wiki_desc + $res = XDB::query('SELECT a.*, d.nom AS domnom, + FIND_IN_SET(\'wiki_desc\', a.flags) AS wiki_desc, + FIND_IN_SET(\'notif_unsub\', a.flags) AS notif_unsub FROM groupex.asso AS a LEFT JOIN groupex.dom AS d ON d.id = a.dom WHERE diminutif = {?}', $gp);