<?php
/***************************************************************************
- * Copyright (C) 2003-2008 Polytechnique.org *
+ * Copyright (C) 2003-2011 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
+/** Debug levels:
+ * DEBUG_BT = show the backtraces (SQL/XMLRPC/...)
+ * DEBUG_VALID = run html validation
+ * DEBUG_SMARTY = don't hide smarty errors/warnings/notices
+ * DEBUG_NOCACHE = disable cache
+ * DEBUG_SCRIPTCACHE = cache expires after the execution of the script
+ */
+define('DEBUG_BT', 1);
+define('DEBUG_VALID', 2);
+define('DEBUG_SMARTY', 4);
+define('DEBUG_NOCACHE', 8);
+define('DEBUG_SCRIPTCACHE', 16);
+
+/* First allowed value for user-defined DEBUG_* flags.
+ * Set to 256 to keep rooms for future core flags (5 flags available).
+ */
+define('DEBUG_USERBASE', 256);
/** PlGlobals provides functions to read a set of configuration files and gives
* access to this configurations.
*/
class PlGlobals
{
- public $coreVersion = '0.9.17';
+ public $coreVersion = PLATAL_CORE_VERSION;
+
+ /** Debug level.
+ * This is a combination of the DEBUG_ flags. As soon as at least
+ * one flag is set, the debug mode is activated, this means:
+ * - debug panel on the top of the pages
+ * - don't hide php notices
+ * - recompile templates when they have been changed
+ */
+ public $debug = 0;
+
+ /** Access mode.
+ */
+ public $mode = 'rw'; // 'rw' => read/write,
+ // 'r' => read/only
+ // '' => site down
+
+ /** Catch-all mode for emails.
+ * If set to a valid email address, all emails from plat/al are sent to
+ * that email address, instead of their normal destination (From:, To:,
+ * and CC: headers are not actually modified).
+ * Note: only valid if restricted_platal is set to true.
+ */
+ public $email_catchall = false;
+
+ /** Tell smarty to check the timestamps of the templates to decide
+ * whether recompile the template or not. If this option is false and
+ * debug mode is not activate, templates won't be recompile if they changed.
+ */
+ public $smarty_autocompile = false;
/** BaseURL of the site.
* This is read from the HTTP headers if available but you MUST give a
public $locale;
public $timezone;
+ /** Cookie configuration.
+ */
+ public $cookie_ns = 'ORG';
+ public $cookie_path = '/';
+
+ /** Cache duration for static and dynamic cacheable content generated by
+ * plat/al. Defaults to a week for static content, and an hour for dynamic
+ * content.
+ */
+ public $static_cache_duration = 604800;
+ public $dynamic_cache_duration = 3600;
+
/** You must give a list of file to load.
* The filenames given are relatives to the config path of your plat/al installation.
*/
public function __construct(array $files)
{
- $this->spoolroot = dirname(dirname(__FILE__));
+ $this->spoolroot = dirname(dirname(dirname(__FILE__)));
$this->readConfig($files);
if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) {
$this->baseurl = @trim($base .$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']), '/');
$this->baseurl_http = @trim('http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']), '/');
}
+ assert_options(ASSERT_ACTIVE, $this->debug != 0);
$this->setLocale();
}
+ /** Initialiase dynamic data in the object.
+ * This is te place to read data from the database if needed.
+ */
+ public function init()
+ {
+ }
+
private function readIniFile($filename)
{
$array = parse_ini_file($filename, true);
/** 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 changeDynamicConfig($conf, $category = 'Core')
{
$dynamicfile = $this->spoolroot.'/spool/conf/platal.dynamic.conf';
if (isset($conflower[strtolower($k)])) {
$array[$same][$k] = $v;
}
- }
+ }
}
}
// writes the file over