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
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;
}
Example #3
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
         }
     }
 }
//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">
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
		<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">				
Example #8
0
 *  
 * 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
////////////////////////////
Example #9
0
                 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;
 }
Example #10
0
<?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();
     }
 }
Example #14
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);
     }
 }
Example #15
0
 function INI($path = null, $synchronize = false, $process_sections = true)
 {
     parent::ConfigMagik($path, $synchronize, $process_sections);
 }
Example #16
0
<?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 ;)
Example #17
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
 /**
  * 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;
 }