Example #1
0
 /**
  * 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
 }
Example #2
0
 /**
  * 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
         }
     }
 }
Example #3
0
<?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
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">
				<h2>IMPORT DES DONNEES DANS LES TABLES</h2>
			</div>
Example #5
0
 /**
  * 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;
 }
Example #6
0
			<?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");
    ?>
</p><?php 
Example #7
0
 *
 * 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
////////////////////////////
//   REGLES FRONTOFFICE   //
Router::connect('', 'home/index');
 /**
  * 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();
     }
 }
Example #11
0
 /**
  * 
  * @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);
     }
 }
 /**
  * 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;
 }