/** * Cette fonction permet l'initialisation de la variable de session * * @access static * @author koéZionCMS * @version 0.1 - 20/04/2012 * @version 0.2 - 31/07/2012 - Suppression de la récupération des données de la variable de session par un fichier * @version 0.3 - 09/11/2012 - Rajout du test pour savoir si les classes Inflector et Set sont chargées */ static function init() { if (!class_exists('Inflector')) { require_once CAKEPHP . DS . 'inflector.php'; } if (!class_exists('Set')) { require_once CAKEPHP . DS . 'set.php'; } $sessionName = Inflector::variable(Inflector::slug('koeZion ' . $_SERVER['HTTP_HOST'])); //Récupération du nom de la variable de session //Récupération des configuration du coeur de l'application pour détermine le mode de stockage des variables de sessions //Soit on utilise le comportement natif de PHP //Soit on stocke les sessions en local dans le dossier TMP require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'core.ini', true, false); $coreConfs = $cfg->keys_values(); if (isset($coreConfs['local_storage_session']) && $coreConfs['local_storage_session']) { ini_set('session.save_path', TMP . DS . 'sessions'); } ini_set('session.use_trans_sid', 0); //Evite de passe l'id de la session dans l'url session_name($sessionName); //On affecte le nom session_start(); //On démarre la session }
function updateVersion() { require_once 'lib/class.settings.php'; require_once 'lib/class.github.php'; $github = new GitHub('gugahoi', 'mediafrontpage'); $commit = $github->getCommits(); $commitNo = $commit['0']['sha']; $config = new ConfigMagik('config.ini', true, true); try { $config->set('version', $commitNo, 'ADVANCED'); } catch (Exception $e) { echo false; exit; } echo true; }
/** * Constructeur de la classe * * @access public * @author koéZionCMS * @version 0.1 - 06/20/2011 by FI * @version 0.2 - 02/03/2012 by FI - Modification de la récupération des configurations, on passe maintenant par un fichier .ini * @version 0.3 - 18/04/2012 by FI - Modification de la récupération du .ini il n'y a plus de section */ function init($file) { require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration $cfg = new ConfigMagik($file, true, true); //Création d'une instance $conf = $cfg->keys_values(CURRENT_WEBSITE_ID); //Récupération des configurations en fonction du nom de domaine $this->smtpHost = isset($conf['smtp_host']) ? $conf['smtp_host'] : ''; $this->smtpPort = isset($conf['smtp_port']) ? $conf['smtp_port'] : ''; $this->smtpUserName = isset($conf['smtp_user_name']) ? $conf['smtp_user_name'] : ''; $this->smtpPassword = isset($conf['smtp_password']) ? $conf['smtp_password'] : ''; $this->mailSetFromEmail = isset($conf['mail_set_from_email']) ? $conf['mail_set_from_email'] : ''; //Récupération du mail de l'expéditeur $this->mailSetFromName = isset($conf['mail_set_from_name']) ? $conf['mail_set_from_name'] : ''; //Récupération du nom de l'expéditeur $this->bccEmail = isset($conf['bcc_email']) ? $conf['bcc_email'] : ''; //Récupération de la copie require_once SWIFTMAILER . DS . 'swift_required.php'; //Inclusion de la librairie d'envoi de mails //Si les paramètres sont bien renseignés if (!empty($this->smtpHost) && !empty($this->smtpPort) && !empty($this->smtpUserName) && !empty($this->smtpPassword)) { ////////////////////// // HACK 1AND1 // //A tester pour voir si cela fonction sur l'ensemble de leurs mutualisés //Pour le moment testé sur les serveurs dédiés clé en main if (substr_count($_SERVER['DOCUMENT_ROOT'], '/kunden/')) { $transport = Swift_MailTransport::newInstance(); $this->mailer = Swift_Mailer::newInstance($transport); //Création d'une nouvelle instance de mail } else { if (isset($conf['smtp_secure']) && $conf['smtp_secure']) { $encryption = 'ssl'; } else { $encryption = null; } //Définition du transport smtp $transport = Swift_SmtpTransport::newInstance()->setHost($this->smtpHost)->setPort($this->smtpPort)->setEncryption($encryption)->setUsername($this->smtpUserName)->setPassword($this->smtpPassword); //Mot de passe $this->mailer = Swift_Mailer::newInstance($transport); //Création d'une nouvelle instance de mail } } }
//On récupère la section de la page précédente if (isset($_POST['section']) && !empty($_POST['section'])) { $section = $_POST['section']; unset($_POST['section']); } else { $httpHost = $_SERVER["HTTP_HOST"]; if ($httpHost == 'localhost' || $httpHost == '127.0.0.1') { $section = 'localhost'; } else { $section = 'online'; } } require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration $cfg = new ConfigMagik(CONFIGS_FILES . DS . 'database.ini', true, true); //Création d'une instance, si le fichier database.ini n'existe pas il sera créé $conf = $cfg->keys_values($section); //On va procéder à l'import require_once INSTALL_FUNCTIONS . DS . 'database.php'; //Inclusion des fonctions de paramétrage de la base de données $start = 1; $foffset = 0; $totalqueries = 0; $init_db_tables = init_db($conf['host'], $conf['database'], $conf['login'], $conf['password'], "database_datas", $start, $foffset, $totalqueries); ?> <div id="right"> <div id="main"> <div class="box"> <div class="title">
/** * Cette fonction va insérer dans le fichier de log les différentes erreurs rencontrées * * @param varchar $message Message à insérer dans les logs * @access public * @author koéZionCMS * @version 0.1 - 23/12/2011 */ public function error($message) { require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'core.ini', true, false); $coreConfs = $cfg->keys_values(); if ($coreConfs['log_php']) { //Rajout le 02/04/2013 $date = date('Y-m-d'); $traceSql = date('Y-m-d H:i:s') . "|#|" . $message . "|#|" . $this->request->url . "\n"; FileAndDir::put(TMP . DS . 'logs' . DS . 'php' . DS . 'e404_' . $date . '.log', $traceSql, FILE_APPEND); } $url = Router::url('e404'); $url .= "?e404=" . $this->request->url; Session::write('redirectMessage', $message); header("Location: " . $url); die; }
<div class="content nopadding"> <?php echo $helpers['Form']->input('publication_date', _('Date de publication'), array("class" => "datepicker", "placeholder" => "dd.mm.yy", 'tooltip' => "Indiquez la date à laquelle cet article sera publié")); ?> <p style="padding:0 20px 0 20px;margin-bottom:5px"><?php echo _("Cette option vous permet de définir la date à laquelle sera publié l'article en utilisant une tâche"); ?> <a href="http://fr.wikipedia.org/wiki/Cron" target="_blank">CRON</a></p> <p style="padding:0 20px 0 20px;margin-bottom:5px"><?php echo _("Vous pouvez utiliser des services CRON gratuits comme par exemple"); ?> <a href="http://www.cronoo.com/" target="_blank">Cronoo</a></p> <?php $websiteUrl = Session::read('Backoffice.Websites.details.' . CURRENT_WEBSITE_ID . '.url'); require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'security_code.ini', true, false); $updateCode = $cfg->keys_values(); if (empty($updateCode['security_code'])) { ?> <p style="padding:0 20px 0 20px;margin-bottom:5px"><?php echo _("Pour utiliser cette fonctionnalité vous devez en premier lieu"); ?> <a href="<?php echo Router::url('backoffice/configs/security_code_liste'); ?> "><?php echo _("paramétrer le code de sécurité"); ?> </a> <?php echo _("utilisé pour pouvoir lancer cette procédure"); ?>
if (isset($_POST['valid_database_form']) && $_POST['valid_database_form']) { unset($_POST['valid_database_form']); $datas = $_POST; //Création d'une variable contenant les données postées require_once INSTALL_VALIDATE . DS . 'database.php'; //Inclusion des règles de validation des champs //Si pas d'erreur de validation if (!isset($formerrors)) { require_once INSTALL_FUNCTIONS . DS . 'database.php'; //Inclusion des fonctions de paramétrage de la base de données $bddcheck = check_connexion($datas['host'], $datas['login'], $datas['password'], $datas['database']); //On check la connexion à la bdd if ($bddcheck) { require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration $cfg = new ConfigMagik(CONFIGS_FILES . DS . 'database.ini', true, true); //Création d'une instance, si le fichier database.ini n'existe pas il sera créé $datas['prefix'] = ""; //Par défaut à vide //On va parcourir les données postées et mettre à jour le fichier ini foreach ($datas as $k => $v) { $cfg->set($k, $v, $section); } $cfg->save(); //On sauvegarde le fichier de configuration } } } ?> <div id="right"> <div id="main">
* * PHP versions 4 and 5 * * KoéZionCMS : PHP OPENSOURCE CMS (http://www.koezion-cms.com) * Copyright KoéZionCMS * * Licensed under The MIT License * Redistributions of files must retain the above copyright notice. * * @copyright KoéZionCMS * @link http://www.koezion-cms.com * @version 0.1 - 09/03/2012 by FI */ require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'routes.ini', true, false); //Création d'une instance $routesConfigs = $cfg->keys_values(); //Récupération des configurations //On va créer une constante pour stocker la valeur par défaut du préfixe lors de l'ajout d'un post define('POST_PREFIX', $routesConfigs['posts_prefix_singular']); // Définition des différents préfixes de l'application // Ici le préfixe backoffice et identifié par le mot renseigné dans le fichiers de configuration .ini Router::prefix($routesConfigs['backoffice_prefix'], 'backoffice'); //Définition du prefixe backoffice // Définition des différentes routes de l'application // // Son fonctionnement est le suivant : // - A gauche l'url voulue // - A droite l'url renseignée dans les vues ////////////////////////////
echo 'Could not set variable ' . $var . '<br>'; echo $e; return false; } } } try { $section = $config->get($section_name); //Get the entire section so that we can check the variables in it. foreach ($section as $title => $value) { //Here we go through all variables in the section and delete the ones that are in there but not in the $_GET variables //Used mostly for deleting things. if (!isset($_GET[$title]) && $config->get($title, $section_name) !== NULL) { $title = urlencode($title); try { $config = new ConfigMagik('config.ini', true, true); $config->removeKey($title, $section_name); //$title removed; $config->save(); } catch (Exception $e) { echo 'Unable to remove variable ' . $title . ' on section' . $section_name . '<br>'; echo $e; } } } } catch (Exception $e) { echo $e; } echo true; return true; }
<?php // inlclude the class-file require_once 'lib/class.settings.php'; // create new ConfigMagik-Object // Needed alternate paths for ajax based widgets to load appropriately therefore we go back recursively in directories $found = false; $path = 'config.ini'; while (!$found) { if (file_exists($path)) { $found = true; $Config = new ConfigMagik($path, true, true); } else { $path = '../' . $path; } } //echo '<pre>';print_r($Config); echo '</pre>'; //***************************************************************************************************************// // __ __ _ ___ _ ___ ___ __ // // | / | ___ __| |(*) __ _ | __| _ _ ___ _ __ | |_ | _ __ _ __ _ ___ / __| ___ _ __ / _|(*) __ _ // // | | /| |/ -_)/ _` || |/ _` || _| | '_|/ _ | ' | _|| _// _` |/ _` |/ -_) |(__ / _ | ' | _|| |/ _` | // // |_| |_| ___ |__,_||_| __,_||_| |_| ___/ |_||_||_| |_| __,_| __, | ___| ___| ___/ |_||_||_| |_| __, | // // ___/ | ___/ | // //***************************************************************************************************************// /*Programs Section*/ //***********************************************************************************// // Titles are self explanatory. Do not include http:// // // // // Need to add the option for reverse proxies(eg.: /xbmc) // // // // $JDOWNLOADER_REMOTEPORT -> port from RemoteControl Plugin //
/** * Cette fonction permet l'affichage de la liste des éléments * * @access public * @author koéZionCMS * @version 0.1 - 17/01/2012 by FI * @version 0.2 - 03/10/2014 by FI - Correction erreur surcharge de la fonction, rajout de tous les paramètres */ public function backoffice_index($return = false, $fields = null, $order = null, $conditions = null) { ////////////////////////////////////////////////////// // RECUPERATION DES CONFIGURATIONS DES ARTICLES // require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration des posts $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'posts.ini', false, false); //Création d'une instance $postsConfigs = $cfg->keys_values(); if ($postsConfigs['order'] == 'modified') { $order = 'category_id ASC, modified DESC'; } else { if ($postsConfigs['order'] == 'created') { $order = 'category_id ASC, created_by ASC'; } else { if ($postsConfigs['order'] == 'order_by') { $order = 'category_id ASC, order_by ASC'; } } } $this->set('postsOrder', $postsConfigs['order']); $datas = parent::backoffice_index(true, null, $order); $posts = array(); foreach ($datas['posts'] as $k => $v) { $posts[$v['category_id']][] = $v; } $datas['posts'] = $posts; $this->set($datas); }
/** * Cette fonction permet la connexion au backoffice * * @access public * @author koéZionCMS * @version 0.1 - 27/01/2012 by FI * @version 0.2 - 20/04/2012 by FI - Gestion des messages d'erreurs * @version 0.3 - 05/06/2012 by FI - Gestion de la connexion utilisateurs avec vérification des sites autorisés * @version 0.4 - 11/07/2012 by FI - Mise en fonction privée de la récupération des sites Internet * @version 0.5 - 02/03/2013 by FI - Modification de la gestion du role de l'utilisateur, donnée provenant maintenant de la table des groupes * @version 0.6 - 16/04/2013 by FI - Mise en place de la récupération dynamique de la route pour l'interface d'administration * @version 0.7 - 17/10/2014 by FI - Suppression du contrôle du mot de passe pour une utilisation locale * @version 0.8 - 04/06/2015 by FI - Correction récupération des données lors de l'utilisation d'un site sécurisé */ function login() { $this->layout = 'connect'; //Définition du layout if ($this->request->data) { $data = $this->request->data; //Mise en variable des données postées require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'core.ini', true, false); $coreConfs = $cfg->keys_values(); if ($coreConfs['hash_password']) { $data['password'] = sha1($data['password']); } //Cryptage du mot de passe //Récupération du login et du mot de passe dans des variables $postLogin = $data['login']; $postPassword = $data['password']; //Récupération de l'utilisateur $user = $this->User->findFirst(array('conditions' => array('login' => $postLogin))); //Si on récupère un utilisateur if (!empty($user)) { //Récupération des données de l'utilisateur dans des variables $bddPassword = $user['password']; $bddOnline = $user['online']; //En local on peut éviter la saisie des mots de passe $httpHost = $_SERVER["HTTP_HOST"]; $checkPassword = true; //Par défaut on check le password if (!isset($coreConfs['check_password_local'])) { $coreConfs['check_password_local'] = 0; } //Petit contrôle au cas ou le paramètre de cette conf ne soit pas renseigné if (($httpHost == 'localhost' || $httpHost == '127.0.0.1') && !$coreConfs['check_password_local']) { $checkPassword = false; } $passwordOk = true; //Par défaut la password est bon if ($checkPassword) { $passwordOk = $postPassword == $bddPassword; } //Sauf, éventuellement, si on souhaite le contrôle //On va contrôler que le mot de passe saisi soit identique à celui en base de données if ($passwordOk) { //Ensuite on contrôle que cet utilisateur à bien le droit de se connecter au backoffice if ($bddOnline) { //Récupération du groupe de cet utilisateur pour en connaître le role //1 --> ADMINISTRATEUR BACKOFFICE (SUPERADMIN) //2 --> UTILISATEUR BACKOFFICE (ADMINISTRATEUR DE SITE, REDACTEURS, ETC...) //3 --> UTILISATEUR FRONTOFFICE (UTILISATEUR INTRANET, CLIENT, PAGE PRIVEES) $this->load_model('UsersGroup'); $usersGroup = $this->UsersGroup->findFirst(array('conditions' => array('id' => $user['users_group_id']))); $bddRole = $usersGroup['role_id']; //Mise en place de la récupération dynamique de la route pour l'interface d'administration require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'routes.ini', true, false); //Création d'une instance $routesConfigs = $cfg->keys_values(); //Récupération des configurations //ADMINISTRATEUR BACKOFFICE// if ($bddRole == 1) { $session = array('User' => $user, 'UsersGroup' => $usersGroup, 'Websites' => $this->_init_websites_datas()); //GESTION DU PLUGIN ACLS// $session = $this->_check_acls_plugin($user, $session); //GESTION DU PLUGIN LOCALIZATION// $session = $this->_check_localization_plugin($session); ////////////////////////////////////////// // DEFINITION DE L'URL DE LA HOME // if (isset($usersGroup['default_home']) && !empty($usersGroup['default_home'])) { $redirectUrl = $usersGroup['default_home']; } else { if (isset($coreConfs['backoffice_home_page']) && !empty($coreConfs['backoffice_home_page'])) { $redirectUrl = $coreConfs['backoffice_home_page']; } else { $redirectUrl = $routesConfigs['backoffice_prefix']; } } Session::write('Backoffice', $session); //On insère dans la variable de session les données de l'utilisateur $this->redirect($redirectUrl); //On redirige vers la page d'accueil du backoffice //UTILISATEUR BACKOFFICE// } else { if ($bddRole == 2) { //Récupération des sites auxquels l'utilisateurs peut se connecter Via son groupe $this->load_model('UsersGroupsWebsite'); //Chargement du modèle $usersGroupsWebsites = $this->UsersGroupsWebsite->find(array('conditions' => array('users_group_id' => $user['users_group_id']))); //Récupération des sites auxquels l'utilisateurs peut se connecter Via l'utilisateur $this->load_model('UsersWebsite'); //Chargement du modèle $usersWebsites = $this->UsersWebsite->find(array('conditions' => array('user_id' => $user['id']))); $websitesList = array(); foreach ($usersGroupsWebsites as $k => $v) { $websitesList[] = $v['website_id']; } foreach ($usersWebsites as $k => $v) { $websitesList[] = $v['website_id']; } //On check qu'il y ait au moins un site if (count($websitesList) > 0) { //$usersGroupsWebsitesList = array(); //foreach($usersGroupsWebsites as $k => $v) { $usersGroupsWebsitesList[] = $v['website_id']; } $session = array('User' => $user, 'UsersGroup' => $usersGroup, 'Websites' => $this->_init_websites_datas(array('conditions' => 'id IN (' . implode(',', $websitesList) . ')'))); //GESTION DU PLUGIN ACLS// $session = $this->_check_acls_plugin($user, $session); //GESTION DU PLUGIN LOCALIZATION// $session = $this->_check_localization_plugin($session); ////////////////////////////////////////// // DEFINITION DE L'URL DE LA HOME // if (isset($usersGroup['default_home']) && !empty($usersGroup['default_home'])) { $redirectUrl = $usersGroup['default_home']; } else { if (isset($coreConfs['backoffice_home_page']) && !empty($coreConfs['backoffice_home_page'])) { $redirectUrl = $coreConfs['backoffice_home_page']; } else { $redirectUrl = $routesConfigs['backoffice_prefix']; } } Session::write('Backoffice', $session); //On insère dans la variable de session les données de l'utilisateur $this->redirect($redirectUrl); //On redirige vers la page d'accueil du backoffice } else { Session::setFlash(_("Désolé mais votre accès au backoffice n'est pas autorisé (Aucun site administrable)"), 'error'); } //Sinon on génère le message d'erreur //UTILISATEUR FRONTOFFICE// } else { if ($bddRole == 3) { //Récupération des sites auxquels l'utilisateurs peut se connecter Via son groupe $this->load_model('UsersGroupsWebsite'); //Chargement du modèle $usersGroupsWebsites = $this->UsersGroupsWebsite->find(array('conditions' => array('users_group_id' => $user['users_group_id']))); //Récupération des sites auxquels l'utilisateurs peut se connecter Via l'utilisateur $this->load_model('UsersWebsite'); //Chargement du modèle $usersWebsites = $this->UsersWebsite->find(array('conditions' => array('user_id' => $user['id']))); $websitesList = array(); foreach ($usersGroupsWebsites as $k => $v) { $websitesList[] = $v['website_id']; } foreach ($usersWebsites as $k => $v) { $websitesList[] = $v['website_id']; } //On check qu'il y ait au moins un site if (count($websitesList) > 0) { //On récupère la liste des sites dans un tableau //$usersGroupsWebsitesList = array(); //foreach($usersGroupsWebsites as $k => $v) { $usersGroupsWebsitesList[] = $v['website_id']; } $websiteDatas = $this->components['Website']->get_website_datas(); //Récupération des données du site courant if (!in_array(CURRENT_WEBSITE_ID, $websitesList)) { Session::setFlash(_("Désolé mais vous ne pouvez pas accéder à ce site"), 'error'); } else { $session = array('User' => $user, 'UsersGroup' => $usersGroup, 'AuthWebsites' => $websitesList); Session::write('Frontoffice', $session); //On insère dans la variable de session les données de l'utilisateur $this->redirect('/'); //On redirige vers la page d'accueil du site } } else { Session::setFlash(_("Vous ne disposez pas des droits nécessaires pour accéder à ce site"), 'error'); } //Sinon on génère le message d'erreur } } } } else { Session::setFlash(_("Désolé mais votre accès au backoffice n'est pas autorisé"), 'error'); } //Sinon on génère le message d'erreur } else { Session::setFlash(_("Désolé mais le mot de passe ne concorde pas"), 'error'); } //Sinon on génère le message d'erreur } else { Session::setFlash(_("Désolé aucun utilisateur n'a été trouvé"), 'error'); } //Sinon on génère le message d'erreur $this->request->data['password'] = ''; //On vide le mot de passe } }
/** * Cette fonction va permettre l'affichage et la modification des fichiers ini sans section * * @param varchar $file Fichier ini à charger * @param varchar $redirect Page de redirection * @access private * @author koéZionCMS * @version 0.1 - 18/04/2012 by FI */ function _proceed_datas_ini($file, $redirect, $section = null, $websiteUrl = null) { require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration //Création d'une instance if (isset($section)) { $cfg = new ConfigMagik($file, true, true); } else { $cfg = new ConfigMagik($file, true, false); } //Si des données sont postées if ($this->request->data) { if (isset($section)) { foreach ($this->request->data as $k => $v) { $cfg->set($k, $v, $section); } $cfg->set('website_url', $websiteUrl, $section); //On va rajouter l'url du site dans les configurations pour information } else { //On va parcourir les données postées et mettre à jour le fichier ini foreach ($this->request->data as $k => $v) { $cfg->set($k, $v); } } Session::setFlash("Fichier de configuration modifié"); //Message de confirmation $this->redirect($redirect); //Redirection } //Récupération des configurations if (isset($section)) { $this->request->data = $cfg->keys_values($section); } else { $this->request->data = $cfg->keys_values(); } }
/** * * @param unknown_type $function * @param unknown_type $query * @param unknown_type $datasToSave */ protected function _trace_sql($function, $query, $datasToSave = null) { require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'core.ini', true, false); $coreConfs = $cfg->keys_values(); if ($coreConfs['log_sql']) { $date = date('Y-m-d'); $debug = debug_backtrace(); $traceSql = "================================================================================" . "\n" . "[DATE] : \t\t\t" . date('Y-m-d H:i:s') . "\n" . "[CLASS] : \t\t\t" . get_class($this) . "\n" . "[REFERER] : \t\t" . $this->refererUrl . "\n" . "[DEBUG BACKTRACE] : " . "\n"; foreach ($debug as $k => $v) { if (isset($v['file']) && !empty($v['file']) && isset($v['line']) && !empty($v['line'])) { $traceSql .= "\t\t\t\t\t" . '[FILE] : ' . $v['file'] . ' --> [LINE] : ' . $v['line'] . "\n"; } } $traceSql .= "[FUNCTION] : \t\t" . $function . "\n" . "[QUERY] : " . "\n" . $query . "\n"; if (isset($datasToSave)) { $traceSql .= "[DATAS] : \n" . var_export($datasToSave, true) . "\n"; } FileAndDir::put(TMP . DS . 'logs' . DS . 'models' . DS . $date . '.log', $traceSql, FILE_APPEND); } }
function INI($path = null, $synchronize = false, $process_sections = true) { parent::ConfigMagik($path, $synchronize, $process_sections); }
<?PHP /** * @desc Simple example to demonstrate how to use the Ini-Reader/Writer-Class. * @author BennyZaminga <*****@*****.**> * @date Sat Jul 03 23:59:57 CEST 2004 * @version 0.01 */ // inlclude the class-file require_once( 'class.ConfigMagik.php'); // create new ConfigMagik-Object $Config = new ConfigMagik( 'example.ini', true, true); // change path or name of config-file #$Config->PATH = "example.ini.php"; // switch processing sections on or off // NOTE: Turning off section-processing while there are some sections defined, // will lead to an error, so be careful with this one. This is due to the // fact that in a ini-file it is not allowed to set key/value-pairs outside // of a section when there is min one section defined. // This is automatically enabled when a section is defined. #$Config->PROCESS_SECTIONS = false; // switch Protected-Mode on or off // NOTE: It's always good practice when dealing with text-files (like ini's are) // that hold sensitive data to protect them from beeing directly accessed. // This can be archieved in many ways, but the most simple of them all is // just by naming them something like ´ini.mainConf.php´ and by leaving the // Protected-Mode-Switch below enabled ;)
<?php //ini_set( 'magic_quotes_gpc', 0 ); //Récupération de la configuration du coeur require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'core.ini', true, false); $coreConfs = $cfg->keys_values(); //////////////////// // TIMEZONE // if (!isset($coreConfs['date_default_timezone']) || empty($coreConfs['date_default_timezone'])) { date_default_timezone_set('Europe/Paris'); } else { date_default_timezone_set($coreConfs['date_default_timezone']); } //Sinon le timezone saisi en backoffice /////////////////////////////// // GESTION DES ERREURS // //--> http://www.ficgs.com/Comment-montrer-les-erreur-PHP-f1805.html if (!isset($coreConfs['display_php_error'])) { //Si la données n'est pas dans la liste (Cas pour d'anciennes versions) $httpHost = $_SERVER["HTTP_HOST"]; if ($httpHost == 'localhost' || $httpHost == '127.0.0.1') { $displayErrors = 1; } else { $displayErrors = 0; } } else { $displayErrors = $coreConfs['display_php_error']; } ini_set('display_errors', $displayErrors); //Affichage ou non des erreurs
/** * Cette fonction permet de récupérer les articles * * @return array Liste des articles * @access public * @author koéZionCMS * @version 0.1 - 27/06/2014 by FI * @version 0.2 - 24/04/2015 by FI - Gestion de la traduction */ public function _get_posts() { $cacheFolder = TMP . DS . 'cache' . DS . 'variables' . DS . 'Posts' . DS; //On contrôle si le modèle est traduit $this->load_model('Post'); if ($this->Post->fieldsToTranslate) { $cacheFile = "home_page_website_" . CURRENT_WEBSITE_ID . '_' . DEFAULT_LANGUAGE; } else { $cacheFile = "home_page_website_" . CURRENT_WEBSITE_ID; } $posts = Cache::exists_cache_file($cacheFolder, $cacheFile); if (!$posts) { ////////////////////////////////////////////////////// // RECUPERATION DES CONFIGURATIONS DES ARTICLES // require_once LIBS . DS . 'config_magik.php'; //Import de la librairie de gestion des fichiers de configuration des posts $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'posts.ini', false, false); //Création d'une instance $postsConfigs = $cfg->keys_values(); //Récupération des configurations ////////////////////////////////////////////////////// $postsQuery = array('conditions' => array('online' => 1, 'display_home_page' => 1), 'limit' => '0, ' . $postsConfigs['home_page_limit']); if ($postsConfigs['order'] == 'modified') { $postsQuery['order'] = 'modified DESC'; } else { if ($postsConfigs['order'] == 'created') { $postsQuery['order'] = 'created DESC'; } else { if ($postsConfigs['order'] == 'order_by') { $postsQuery['order'] = 'order_by ASC'; } } } $posts = $this->Post->find($postsQuery); Cache::create_cache_file($cacheFolder, $cacheFile, $posts); } return $posts; }