* @version $Id$ * @license http://opensource.org/licenses/gpl-2.0.php GNU GPL 2 */ // Mettre l'error_reporting sur E_ALL uniquement pour activer le mode DEBUG error_reporting(E_ALL); // Protection de la page if (strpos($_SERVER['PHP_SELF'], 'start.') !== false) { exit; } /** * Methode magique permettant le chargement dynamique de classes * * @param string $classname */ function fsb__autoload($classname) { $classname = strtolower($classname); fsb_import($classname); } if (!(function_exists('spl_autoload_register') && spl_autoload_register('fsb__autoload'))) { function __autoload($classname) { fsb__autoload($classname); } } /** * Permet d'acceder partout aux variables globales necessaires au fonctionement du forum */ class Fsb extends Fsb_model { /** * @var Config */ public static $cfg; /** * @var Dbal */ public static $db; /** * @var Debug */ public static $debug; /** * @var Fsb_frame */ public static $frame; /** * @var Adm_menu */ public static $menu; /** * @var Mods */ public static $mods; /** * @var Session */ public static $session; /** * @var Tpl */ public static $tpl; } /** * Inclue un fichier dans le dossier main/ de facon intelligente * * @param string $filename Nom du fichier */ function fsb_import($filename) { static $store; if (!isset($store[$filename])) { $split = explode('_', $filename); if (file_exists(ROOT . 'main/class/class_' . $filename . '.' . PHPEXT)) { include_once(ROOT . 'main/class/class_' . $filename . '.' . PHPEXT); } else if (file_exists(ROOT . 'main/class/' . $split[0] . '/' . $filename . '.' . PHPEXT)) { include_once(ROOT . 'main/class/' . $split[0] . '/' . $filename . '.' . PHPEXT); } else if (file_exists(ROOT . 'main/' . $split[0] . '/' . $filename . '.' . PHPEXT)) { include_once(ROOT . 'main/' . $split[0] . '/' . $filename . '.' . PHPEXT); } else if (file_exists(ROOT . 'main/' . $filename . '.' . PHPEXT)) { include_once(ROOT . 'main/' . $filename . '.' . PHPEXT); } $store[$filename] = true; } } // Instance de la classe Debug Fsb::$debug = new Debug(); // Inclusion des fonctions / classes communes a toutes les pages include_once(ROOT . 'config/config.' . PHPEXT); fsb_import('csts'); fsb_import('globals'); fsb_import('fcts_common'); // Gestionaire d'erreur set_error_handler(array('Display', 'error_handler')); // Forum installe ? if (!defined('FSB_INSTALL')) { Http::header('Location', ROOT . 'install/index.' . PHPEXT); exit; } // Interdiction de garder le fichier d\'installation sur le serveur else if (file_exists(ROOT . 'install/install.' . PHPEXT)) { if (file_exists(ROOT . 'fsb2.' . PHPEXT)) { @unlink(ROOT . 'fsb2.' . PHPEXT); } if (!@unlink(ROOT . 'install/install.' . PHPEXT)) { trigger_error('Vous devez supprimer (ou renommer) le fichier ~/install/install.php pour pouvoir utiliser votre forum, pour des raisons de securite.