SP:Composant:IncludeHandler

De Hegyd Doc.

(Différences entre les versions)
(Initialisation)
(Inclusion)
Ligne 102 : Ligne 102 :
L'option de cache & compression est désactivé en environnement de dev.
L'option de cache & compression est désactivé en environnement de dev.
-
 
-
== Inclusion ==
 

Version du 24 juin 2010 à 15:31

Sommaire

Gestionnaire d'inclusions

Le composant IncludeHandler gère les inclusions de fichiers javascript et css au sein de l'éditeur et du site.


Configuration

Le composant utilise un fichier de configuration pour charger les différents fichiers à include pour chaque page. Le fichier est: conf/includeHandler.php.

il contient deux variables distinctes includesCSS et includesJS.

Configuration des fichiers CSS

La liste des fichiers CSS à inclure se trouve dans le tableau includesCSS. Voici la structure du tableau

array(
'common' => array(),//liste des fichiers inclus partout
'xxx' => array( //liste des fichiers inclus pour les pages se trouvant dans l'espace de nom editor (repertoire controlers/xxx & templates/xxx)
    'common' => array() // fichier inclus sur toutes les pages de l'espace de nom xxx
    'mapage' => array() //fichiers inclus dans la page mapage de l'espace de nom
)

Chaque ligne incluant un fichier se présente de la facon suivante:

array('url relative depuis la racine du projet','no' / true) //le second paramètre indique si le fichier peut être minifié ou non: 'no' pour non, et 'yes'/true si oui

Configuration des fichiers JS

La liste des fichiers CSS à inclure se trouve dans le tableau includesCSS. Voici la structure du tableau

array(
'common' => array(),//liste des fichiers inclus partout
'xxx' => array( //liste des fichiers inclus pour les pages se trouvant dans l'espace de nom editor (repertoire controlers/xxx & templates/xxx)
    'common' => array() // fichier inclus sur toutes les pages de l'espace de nom xxx
    'mapage' => array() //fichiers inclus dans la page mapage de l'espace de nom
)

Chaque ligne incluant un fichier correspond a son url relative depuis le répertoire www/js du projet.

Variables externes

Des variables externes peuvent être ajoutées pour constituer les noms de fichiers, par exemple:

monStyle.css?ts={CSS_LAST_EDIT}

Ensuite, il suffit de passer la variable lors de la construction de l'objet (voir initialisation). Si une variable externe n'est pas passé dans le constructeur, alors tous les nom de fichiers l'utilisant ne seront pas inclus.

Utilisation

Initialisation

Pour utiliser le composant sur les page, il faut initialiser l'object :

               $includeHandler =  new IncludeHandler(
                       $mapage, //nom de la page
                       array(
                               "MODEL"=>$siteClient->getModel()->modelSpaceName,
                               "CSS_LAST_EDIT"=>$siteClient->utsUpdateCSS
                       ), //liste des variable externes
                       true,//flag indiquant si la compression et le cache doivent être activés ou non.
                       IncludeHandler::CMS_MODE//espace de nom dans lequel se trouve la page. Pour l'éditeur il en existe deux: cms & editor, enregistrés dans des constante

);

Des setteurs permettent apres l'initialisation de modifier la page, le mode, et d'activer / désactiver la compression

Recupération de la liste des fichiers

Pour récupéré la liste des fichiers à inclure, voici les fonctions à utiliser :

$includehandler->getJSFiles();
$includehandler->getCSSFiles();

Compression & Cache

Lors de la constitution de la liste des fichiers, si la compression est activée, l'object IncludeHandler remplace tous les fichiers pouvant être compréssé par un seul, dont l'url est contenu dans la constante CSS_COMPRESSED_URL pour le css, JS_COMPRESSED_URL pour le javascript.

Lors de l'affichage de la page, l'appel a chacun des fichiers via le htaccess, execute une page php qui fait appel aux fonctions de compression et de mise en cache du IncludeHandler.

Si aucun cache n'est spécifié, alors le IH (IncludeHandler) se charge de récupérer la liste des fichiers à compresser et cacher, les compresse, et crée un fichier de cache, dont le contenu est lu par la page php appelante.

Utilisation dans l'éditeur

L'intitialisation est réalise dans www/index, puis la liste des fichiers sont passés à l'objet contexte en fin de fichier. L'object contexte est ensuite utilisé pour les inclure a la structure HTML de la page.

Les pages php appelées pour l'inclusion des fichiers de cache sont www/jsSiteClient.php et www/cssSiteClient.php

L'option de cache & compression est désactivé en environnement de dev.