// // This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. // // To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ // // or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. // // Francais (brouillon): http://creativecommons.org/projects/international/fr/translated-license // ////////////////////////////////////////////////////////////////////////////////////////////////////// // Tous les includes et initialisations de classes et de fonctions utiles // v0.1.3 // Sert à chronométrer l'exécution des scripts, pour débuguer. // A commenter pour une utilisation en prod. class Script_Timer { function Script_Timer() { return true; } function Start_Timer() { define ("TIMER_START_TIME", microtime()); return true; } function Get_Time($decimals=2) { // $decimals will set the number of decimals you want for your milliseconds. // format start time $start_time = explode (" ", TIMER_START_TIME); $start_time = $start_time[1] + $start_time[0]; // get and format end time $end_time = explode (" ", microtime()); $end_time = $end_time[1] + $end_time[0]; return number_format ($end_time - $start_time, $decimals); } } // Lance le chrono Script_Timer::Start_Timer(); function str2display($texte,$filtre="") { $texte = htmlspecialchars(stripslashes($texte)); if($filtre == "bbhtml") { $texte = eregi_replace("\[url\]([^\[]+)\[/url\]","\\1",$texte); $texte = eregi_replace("(<|\[)(/?[a-z]+)(>|\])","<\\2>",$texte); $texte = nl2br($texte); } else { include_once("../classes/format.php"); $GLOBALS[format] = new FormatHTML(); $texte = $GLOBALS[format]->totale($texte); } return $texte; } // Classe d'initialisation class Encrier { // Fichiers à inclure, par "type" // Ceci n'est utilisé qu'à des fins de développement, en production un fichier contenant tous les includes est nécessaire var $files = array( "fonctions" => "fonctions.php", "sessions" => "sessions.php", "membres" => "membres.php", "groupes" => "groupes.php", "messages" => "messages.php", "abonnements"=> "abonnements.php", "ecrits" => "ecrits.php", "journal" => "journal.php", "visuels" => "visuels.php", "forum" => "forum.php", "cache" => "cache.php", "fichiers" => "fichiers.php", "votes" => "votes.php", "format" => "format.php", "filtres" => "filtres.php", "images" => "images.php", "checklist" => "checklist.php" ); // Initialisation: on vérifie que les constantes sont définies function Encrier() { if(!defined("LENCRIER_BASE_PATH")) { echo "Chemin de base des classes LENCRIER_BASE_PATH non spécifié."; exit; } if(!defined("LENCRIER_DATA_PATH")) { echo "Chemin des données LENCRIER_DATA_PATH non spécifié."; exit; } } function include_files($requiredFiles="") { if(empty($requiredFiles) || !is_array($requiredFiles)) $requiredFiles = array_flip($this->files); include_once(LENCRIER_BASE_PATH."config.inc.php"); foreach($requiredFiles as $name) { $file = $this->files[$name]; if(empty($file)) { echo 'Fichier à inclure '.$name.' inexistant.'; exit; } include_once(LENCRIER_BASE_PATH.$file); if(!is_numeric($name) && $name != "fonctions") { $GLOBALS[$name] = new $name(); $GLOBALS[$name]->chemin = LENCRIER_DATA_PATH; $GLOBALS[$name]->err["stop"] = "non"; $GLOBALS[$name]->err["debug"] = "oui"; $GLOBALS[$name]->err["log"] = "oui"; } } return TRUE; } } // Valeurs par défaut if(!defined("LENCRIER_BASE_PATH")) define("LENCRIER_BASE_PATH","../classes/"); if(!defined("LENCRIER_DATA_PATH")) define("LENCRIER_DATA_PATH","../datas/"); $enc = new Encrier(); $enc->include_files($requiredFiles); $chemin['classes'] = "../classes/"; $chemin['datas'] = "../datas/"; // Classe de gestion des sessions: initialisation des variables $sessions->cookie_name = "ji_session"; $domaine = $_SERVER['SERVER_NAME']; if(substr_count($domaine,".") > 1) { $dm = @explode(".",$domaine); $i = @count($dm); $domaine = $dm[$i-2].".".$dm[$i-1]; } $sessions->cookie_domain = $domaine; $mem = $sessions; ?>