Ejemplo n.º 1
0
 /**
  * Constructeur de la classe
  *
  * @param 	varchar $view 			Nom de la vue à charger
  * @param 	object 	$controller 	Contrôleur faisant appel à la vue
  * @access	public
  * @author	koéZionCMS
  * @version 0.1 - 13/06/2012 by FI
  * @version 0.2 - 05/06/2013 by FI - Mise en place du chargement des helpers template
  * @version 0.2 - 05/06/2013 by FI - Modification de la gestion des Helpers, par défaut on charge de façon distincte les helpers du backoffice et du frontoffice pour plus de souplesse dans la gestion des templates
  * @version 0.3 - 07/07/2014 by FI - Rajout de $this->request = new stdClass(); pour corriger l'erreur suivante Warning: Creating default object from empty value in /core/Koezion/view.php on line 342 
  * @version 0.4 - 08/01/2015 by FI - Mise en place des hooks pour les helpers 
  */
 public function __construct($view, $controller)
 {
     $this->view = $view;
     $this->controller = $controller;
     $this->layout = $controller->layout;
     $this->vars = $controller->get('vars');
     $this->vars['components'] = $controller->components;
     $this->params = $controller->params;
     $this->request = new stdClass();
     //Si on a des helpers à charger
     //Il s'agit ici de helpers commun à l'ensemble des templates backoffice et frontoffice uniquement
     //S'il s'agit de helpers spécifiques il faut mettre les fichiers dans les dossiers correspondants
     if ($this->helpers) {
         foreach ($this->helpers as $k => $v) {
             $helper = low($v);
             require_once HELPERS . DS . $helper . '_helper.php';
             unset($this->helpers[$k]);
             $helperObjectName = $v . 'Helper';
             $this->vars['helpers'][$v] = new $helperObjectName($this);
         }
     }
     //INSERTION DES EVENTUELS HELPERS DU TEMPLATE (BACK OU FRONT)//
     if (defined('LAYOUT_VIEWS')) {
         $moreHelpers = LAYOUT_VIEWS . DS . 'helpers';
     } else {
         $moreHelpers = HELPERS . DS . 'backoffice';
     }
     //Backoffice
     if (is_dir($moreHelpers)) {
         foreach (FileAndDir::directoryContent($moreHelpers) as $moreHelper) {
             $helperPath = $moreHelpers . DS . $moreHelper;
             //On va effectuer un contrôle pour vérifier si un hook n'est pas en place pour le helper concerné
             if (defined('LAYOUT_VIEWS')) {
                 $websiteHooks = $this->vars['websiteParams'];
                 $helpersHooks = $this->_load_hooks_files('HELPERS', $websiteHooks);
                 if (isset($helpersHooks[$moreHelper])) {
                     $helperPath = $helpersHooks[$moreHelper];
                 }
             }
             require_once $helperPath;
             $helperClass = Inflector::camelize(str_replace('_helper.php', '', $moreHelper));
             $helperObjectName = $helperClass . 'Helper';
             $this->vars['helpers'][$helperClass] = new $helperObjectName($this);
         }
     }
     $this->rendered = false;
 }
    $aUrlList[str_repeat('___', $v['level'] + 1) . $v['name']] = $url;
}
//Réorganisation de la liste des articles
foreach ($posts as $k => $v) {
    $aUrlList['[ ==== ' . _("Articles") . ' ==== ]'] = '';
    $url = Router::url('posts/view/id:' . $v['id'] . '/slug:' . $v['slug'] . '/prefix:' . $v['prefix']);
    if (isset($v['redirect_to']) && !empty($v['redirect_to'])) {
        $url = Router::url($v['redirect_to']);
    }
    $aUrlList['___' . $v['name']] = $url;
}
/////////////////////////////////////////////////////////////////////////////
//   REGLES ADDITIONNELLES POUR LA generation DES LIENS POUR LES PLUGINS   //
$moreLinks = CONFIGS . DS . 'plugins' . DS . 'ckeditor' . DS . 'generate_links';
if (is_dir($moreLinks)) {
    foreach (FileAndDir::directoryContent($moreLinks) as $moreLink) {
        require_once $moreLinks . DS . $moreLink;
    }
}
/////////////////////////////////////////////////////////////////////////////
/*if(isset($flipbooks) && !empty($flipbooks)) {
	
	foreach($flipbooks as $k => $v) {
	
		$aUrlList['[ ==== '._("Flipbooks").' ==== ]'] = '';
		$aUrlList['___'.$v['name']] = Router::url('flipbooks/index/id:'.$v['id'].'/slug:'.$v['slug']);
	}
}*/
/*
//Réorganisation de la liste des types d'articles
foreach($postsTypes as $k => $v) {
Ejemplo n.º 3
0
require_once KOEZION . DS . 'router.php';
//Chargement de l'object Router (Analyse des Urls)
require_once CONFIGS . DS . 'configure.php';
//Classe de configuration
require_once CONFIGS . DS . 'routes.php';
//Fichier contenant la liste des réécritures d'url
require_once CAKEPHP . DS . 'string.php';
//Classe Object permettant la manipulation de chaîne de caractères
require_once CAKEPHP . DS . 'set.php';
//Classe Object permettant des manipulations sur les tableaux
require_once CAKEPHP . DS . 'sanitize.php';
//Classe Object permettant des manipulations de nettoyage
require_once KOEZION . DS . 'validation.php';
//Classe Object permettant la gestion des différentes règles de validation des modèles
require_once KOEZION . DS . 'request.php';
//Chargement de l'objet Request
require_once CONTROLLERS . DS . 'app_controller.php';
//Classe App
require_once KOEZION . DS . 'koezion_plugin.php';
//Classe Plugin
require_once KOEZION . DS . 'dispatcher.php';
//Chargement du Dispatcher
/////////////////////////////////////////////
//   FICHIERS BOOTSTRAP POUR LES PLUGINS   //
$moreBootstraps = CONFIGS . DS . 'plugins' . DS . 'bootstrap';
if (is_dir($moreBootstraps)) {
    foreach (FileAndDir::directoryContent($moreBootstraps) as $moreBootstrap) {
        require_once $moreBootstraps . DS . $moreBootstrap;
    }
}
/////////////////////////////////////////////
Ejemplo n.º 4
0
 /**
  * Cette fonction permet la copie récursive de dossiers et fichier
  * 
  * @param 	varchar $sourcePath			Dossier source
  * @param 	varchar $destinationPath 	Dossier de destination
  * @access	static
  * @author	koéZionCMS
  * @version 0.1 - 04/11/2014 by FI
  */
 static function recursive_copy($sourcePath, $destinationPath)
 {
     FileAndDir::createPath($destinationPath);
     //Création du dossier de destination
     $sourcePathContent = FileAndDir::directoryContent($sourcePath);
     //On récupère l'ensemble des fichiers
     //On parcours le tout et on copie
     foreach ($sourcePathContent as $v) {
         if (!is_dir($sourcePath . DS . $v)) {
             $processResult = FileAndDir::fcopy($sourcePath . DS . $v, $destinationPath . DS . $v);
         } else {
             FileAndDir::recursive_copy($sourcePath . DS . $v, $destinationPath . DS . $v);
         }
     }
 }
Ejemplo n.º 5
0
 /**
  * Cette fonction permet de contrôler les plugins qui ne sont pas encore insérés dans la base de données
  *
  * @access 	protected
  * @author 	koéZionCMS
  * @version 0.1 - 17/01/2012 by FI
  */
 protected function _check_plugins()
 {
     $pluginsDirectoryContent = FileAndDir::directoryContent(PLUGINS);
     foreach ($pluginsDirectoryContent as $pluginDirectory) {
         if (is_dir(PLUGINS . DS . $pluginDirectory) && $pluginDirectory != "_") {
             if (file_exists(PLUGINS . DS . $pluginDirectory . DS . 'description.xml')) {
                 $xParsedXml = simplexml_load_file(PLUGINS . DS . $pluginDirectory . DS . 'description.xml');
                 $xParsedXml = (array) $xParsedXml;
                 $this->load_model('Module');
                 //On charge le modèle permettant la gestion des modules
                 foreach ($xParsedXml as $k => $v) {
                     $conditions = array('conditions' => array('code' => $xParsedXml['code']));
                     $plugin = $this->Plugin->find($conditions);
                     if (count($plugin) == 0) {
                         //Insertion dans la base de données
                         $insertPlugin = array('code' => $xParsedXml['code'], 'name' => $xParsedXml['name'], 'description' => $xParsedXml['description'], 'author' => $xParsedXml['author'], 'online' => 0, 'installed' => 0);
                         $this->Plugin->save($insertPlugin);
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 6
0
$Errorsmessages['PostsComment']['email'] = _('Vous devez indiquer un email valide.');
$Errorsmessages['PostsComment']['cpostal'] = _('Vous devez indiquer votre code postal.');
$Errorsmessages['PostsComment']['message'] = _('Veuillez saisir votre message');
$Errorsmessages['PostsType']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['PostsType']['column_title'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['RightButton']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['Slider']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['User']['role'] = _('Vous devez sélectionner une valeur.');
$Errorsmessages['User']['group'] = _('Vous devez sélectionner une valeur.');
$Errorsmessages['User']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['User']['login'] = _('La valeur de ce champ est de 4 caractères minimum.');
$Errorsmessages['User']['password'] = _('La valeur de ce champ est de 4 caractères minimum.');
$Errorsmessages['User']['email'] = _('Vous devez indiquer un email valide.');
$Errorsmessages['UsersGroup']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['UsersGroup']['role_id'] = _('Vous devez sélectionner une valeur.');
$Errorsmessages['Website']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['Website']['url'] = _('Vous devez indiquer une url valide.');
//$Errorsmessages['Website']['url_alias'] = _('Vous devez indiquer une url valide pour les alias.');
$Errorsmessages['Website']['template'] = _('Vous devez indiquer sélectionner un template.');
$Errorsmessages['Template']['name'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['Template']['layout'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['Template']['version'] = _('La valeur de ce champ est de 2 caractères minimum.');
$Errorsmessages['Template']['code'] = _('La valeur de ce champ est de 2 caractères minimum.');
////////////////////////////////////////////
//   MESSAGES D'ERREURS SUPPLEMENTAIRES   //
$moreMessages = CONFIGS . DS . 'plugins' . DS . 'errors_messages';
if (is_dir($moreMessages)) {
    foreach (FileAndDir::directoryContent($moreMessages) as $moreMessage) {
        include $moreMessages . DS . $moreMessage;
    }
}
Ejemplo n.º 7
0
 /**
  * Cette fonction permet l'insertion de fichier CSS ou JS supplémentaire directement depuis le dossier upload
  * 
  * Appel : 
  * 	echo $helpers['Html']->upload_additional_files('CSS');
  * 	echo $helpers['Html']->upload_additional_files('JS');
  * 
  * @param	varchar $type 	CSS ou JS
  * @param	array 	$except Tableau contenant la liste des fichiers à ignorer
  * @access 	public
  * @author 	koéZionCMS
  * @version 0.1 - 19/03/2014 by FI
  * @deprecated - Since 31/10/2014 by FI - Suppression de cette fonctionnalité car trop lourde à gérer
  */
 public function upload_additional_files($type, $except = null)
 {
     $html = '';
     if ($type == 'CSS') {
         $moreCSSPath = UPLOAD . DS . 'files' . DS . 'css';
         if (is_dir($moreCSSPath)) {
             foreach (FileAndDir::directoryContent($moreCSSPath) as $moreCSS) {
                 if (!isset($except) || isset($except) && !in_array($moreCSS, $except)) {
                     //On génère la balise de chargement
                     $html .= "\t\t" . '<link href="' . Router::webroot('/upload/files/css/' . $moreCSS) . '" rel="stylesheet" type="text/css" />' . "\n";
                 }
             }
         }
     } else {
         if ($type == 'JS') {
             $moreJSPath = UPLOAD . DS . 'files' . DS . 'js';
             if (is_dir($moreJSPath)) {
                 foreach (FileAndDir::directoryContent($moreJSPath) as $moreJS) {
                     if (!isset($except[$moreJS])) {
                         //On génère la balise de chargement
                         $html .= "\t\t" . '<script src="' . Router::webroot('/upload/files/js/' . $moreJS) . '" type="text/javascript"></script>' . "\n";
                     }
                 }
             }
         }
     }
     return $html;
 }
Ejemplo n.º 8
0
//   REGLES FRONTOFFICE   //
Router::connect('', 'home/index');
//Page d'accueil du site
Router::connect('e404', 'home/e404');
//Erreur 404
Router::connect('newsletter', 'contacts/newsletter');
//Inscription à la newsletter
Router::connect('rechercher', 'searchs/rechercher');
//Préparation de l'url pour la recherche
Router::connect('recherche', 'searchs/index');
//Résultat de la recherche
////////////////////////////////////////////////
//   REGLES ADDITIONNELLES POUR LES PLUGINS   //
$moreRoutes = CONFIGS . DS . 'plugins' . DS . 'routes';
if (is_dir($moreRoutes)) {
    foreach (FileAndDir::directoryContent($moreRoutes) as $moreRoute) {
        require_once $moreRoutes . DS . $moreRoute;
    }
}
////////////////////////////////////////////////
Router::connect(':prefix/:slug-:id', 'posts/view/id:([0-9]+)/slug:([a-zA-Z0-9\\-]+)/prefix:([a-zA-Z0-9\\-]+)');
//Affichage du détail d'un post
Router::connect(':slug-:id', 'categories/view/id:([0-9]+)/slug:([a-zA-Z0-9\\-]+)');
//Affichage d'une page catégorie
////////////////////////////
///////////////////////////
//   REGLES BACKOFFICE   //
Router::connect('connexion', 'users/login');
//Connexion au backoffice
Router::connect($routesConfigs['backoffice_prefix'], $routesConfigs['backoffice_prefix'] . '/dashboard/index');
//Accueil backoffice
Ejemplo n.º 9
0
function get_plugins_connectors()
{
    $pluginsConnectors = array();
    $pluginsConnectorsPath = CONFIGS . DS . 'plugins' . DS . 'connectors';
    if (is_dir($pluginsConnectorsPath)) {
        foreach (FileAndDir::directoryContent($pluginsConnectorsPath) as $pluginsConnectorsFile) {
            include $pluginsConnectorsPath . DS . $pluginsConnectorsFile;
        }
    }
    return $pluginsConnectors;
}
Ejemplo n.º 10
0
 /**
  * Cette fonction est utilisée par l'éditeur de texte pour afficher la liste des liens disponibles
  *
  * @access 	public
  * @author 	koéZionCMS
  * @version 0.1 - 21/02/2012 by FI
  * @version 0.2 - 07/03/2012 by FI - Rajout de la récupération des types de posts
  * @version 0.3 - 14/03/2012 by FI - Rajout de la récupération des rédacteurs et des dates de parution
  * @version 0.4 - 16/05/2012 by FI - Modification de la récupération des catégories suite à la mise en place de la gestion des sites
  * @version 0.5 - 25/02/2013 by FI - Fonction déplacée de CategoriesController vers AppController
  * @version 0.6 - 27/02/2013 by FI - Mise en place d'une procédure automatisée pour la récupération des liens des plugins à intégrer dans l'éditeur (Thanks to Pierstoval) 
  */
 public function backoffice_ajax_ckeditor_get_internal_links()
 {
     $this->layout = 'ajax';
     //Définition du layout à utiliser
     ///Récupération de toutes les catégories et envoi des données à la vue
     $this->load_model('Category');
     //Chargement du model
     $categories = $this->Category->getTree(array('conditions' => 'type != 3'));
     $this->set('categories', $categories);
     //Récupération de tous les articles et envoi des données à la vue
     $this->load_model('Post');
     //Chargement du model
     $posts = $this->Post->find();
     $this->set('posts', $posts);
     /////////////////////////////////////////////////////////////////////////////////////////
     //   REGLES ADDITIONNELLES POUR LA RECUPERATION DES LIENS A GENERER POUR LES PLUGINS   //
     $moreLinks = CONFIGS . DS . 'plugins' . DS . 'ckeditor' . DS . 'get_links';
     if (is_dir($moreLinks)) {
         foreach (FileAndDir::directoryContent($moreLinks) as $moreLink) {
             require_once $moreLinks . DS . $moreLink;
         }
     }
     /////////////////////////////////////////////////////////////////////////////////////////
     /*//Récupération de tous les types d'articles et envoi des données à la vue
     		$this->load_model('PostsType'); //Chargement du model
     		$postsTypes = $this->PostsType->find();
     		$this->set('postsTypes', $postsTypes);
     		$this->unload_model('PostsType'); //Déchargement du model
     		
     		//Récupération de tous les utilisateurs (Rédacteurs)
     		$this->load_model('User'); //Chargement du model
     		$writers = $this->User->findList();
     		$this->set('writers', $writers);
     		$this->unload_model('User'); //Déchargement du model
     		
     		//Récupération des dates de publication
     		$publicationDates = $this->Category->query("SELECT DISTINCT(STR_TO_DATE(CONCAT(YEAR(modified), '-', MONTH(modified)), '%Y-%m')) AS publication_date FROM posts", true);
     		$this->set('publicationDates', $publicationDates);*/
     $this->render('/elements/ajax/backoffice_ajax_ckeditor_get_internal_links');
 }