SP:Composant:IncludeHandler
De Hegyd Doc.
(→Inclusion) |
(→Compression & Cache) |
||
| Ligne 90 : | Ligne 90 : | ||
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 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. | + | 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. Ensuite elle récupère l'adresse du fichier de cache et affiche son contenu. |
| - | + | Ces méthodes ont le fonctionnement suivant: 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. | |
== Utilisation dans l'éditeur == | == Utilisation dans l'éditeur == | ||
Version du 24 juin 2010 à 15:32
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. Ensuite elle récupère l'adresse du fichier de cache et affiche son contenu.
Ces méthodes ont le fonctionnement suivant: 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.
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.
