29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
29-01-2012 : Parce que nous sommes un peuple debout, agissons pour rester dignes et responsables !
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Pour débuter / eZ publish: les designs





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox

eZ publish: les designs

Date de publication: le mercredi 2 mai 2007 à 19h32
Dernière modification: par Pascal BOYER le mercredi 8 août 2007 à 22h58
« Article précédent: eZ publish: les siteaccess
» Article suivant: eZ publish: les templates

Où sont-ils ?

Les designs sont tous situés dans le répertoire design/ lui-même situé à la racine du répertoire d'installation de eZ publish.

Combien sont-ils ?

Il faut se souvenir du passé, non pour rouvrir de vieilles blessures, mais pour les refermer

Federico Mayor

Par défaut, il y a 4 designs différents:

  • design/ admin/
  • design/ base/
  • design/ plain_site/
  • design/ standard/

On voit donc qu'un design est, à l'instar d'un siteaccess, le nom d'un sous-répertoire du répertoire design/

Nous pouvons créer autant de design que nous le souhaitons.

Définir un design

Comme nous allons le voir, les choses vont commencer à s'articuler et le puzzle à se former.

On définit le design que doit utiliser le système dans un fichier de configuration de surcharge d'un siteaccess ! Nous avons ici trois notions importantes de eZ publish:

  • design
  • fichiers de surcharge
  • siteaccess

:
Un design est intimement lié à un ou plusieurs siteaccess et n'a de sens que parce qu'il est utilisé par un ou plusieurs siteaccess.

Le fichier de surcharge dans lequel est défini le design utilisé par un siteaccess est le fichier site.ini.append.php

Soit le siteaccess luxpopuli. Voici les lignes du fichier site.ini.append.php qui, par défaut, définissent le design associé à ce siteaccess:

29 [DesignSettings]
30 SiteDesign=plain_site
31 AdditionalSiteDesignList[]=base
  • Ligne 29: définition de la rubrique DesignSettings (placée entre crochets)
  • Ligne 30: définition du paramètre SiteDesign dont la valeur vaut le nom du design principal (ici plain_site) que doit utilisé le siteaccess luxpopuli.
  • Ligne 31: définition d'une nouvelle valeur du tableau AdditionalSiteDesignList[] Cette nouvelle valeur est le design de repli base

Ces trois lignes indiquent donc au système que chaque fois que l'URI d'une page demandée contient le siteaccess luxpopuli alors il doit utiliser le design plain_site pour savoir quelle mise en page produire pour l'affichage de la page demandée.

:
luxpopuli, qui est un nom de siteaccess, a été défini lors de l'installation de eZ publish (étape figure 14 de l'article eZ publish : installer la version 3.9.1 ). Par contre, il est impossible, lors de la phase d'installation, de choisir le nom du design que l'on souhaite associer à un siteaccess. Le système d'installation associe toujours:

  • le design plain_site au siteaccess public défini lors de l'installation,
  • le design admin au siteaccess d'administration défini lors de l'installation.

Modifier les noms des designs ne pourra être fait qu'une fois l'installation terminée.

:
Un même design peut être utilisé par plusieurs siteaccess.

Système de repli automatique

La ligne 31 ci-dessus, dit encore ceci au système: si tu ne trouves pas les informations que tu cherches dans le design principal plain_site, regarde donc si des fois elles ne se situraient pas dans le design de repli base.

Et ce n'est pas fini.

site.ini.append.php est un fichier de surcharge du fichier site.ini

Prenons donc la peine de regarder le contenu de la rubrique [DesignSettings] de site.ini:

538 [DesignSettings]
539 # The standard design, is used as fallback design
540 # if the element is not in the sitedesign
541 StandardDesign=standard
542 # The design of the site
543 SiteDesign=admin
544 # AdditionalSiteDesignArray contains an array
545 # of sitedesigns. These sitedesigns will be used
546 # if the design was not found in the main
547 # sitedesign. StandardDesign is the fallback design.
548 AdditionalSiteDesignList[]

Hormis les lignes de commentaires, cette rubrique diffère de celle du fichier de surcharge uniquement par la ligne 541:

StandardDesign=standard

Ce paramètre StandardDesign définit le design dans lequel le système devra, en dernier recours, aller chercher les informations qu'il n'aura trouvées ni dans le design principal ni dans les designs de repli définis par le tableaux AdditionalSiteDesignList[].

A travers cet exemple est illustré à la fois comment fonctionne le système de surcharge et le système de repli automatique de eZ publish.

Récapitulons:

  1. Une page html dont l'URI contient le siteaccess luxpopuli est demandée par un client.
  2. Le système lit les fichiers de configuration par défaut et voit, dans site.ini, qu'il doit utiliser le design principal admin et qu'il n'y a pas de design de repli (le tableau AdditionalSiteDesignList[] est initialisé mais vide puisqu'aucune valeur n'est définie).
  3. Le système lit ensuite les fichiers de surcharge du siteaccess utilisé luxpopuli et apprend, en lisant le fichier de surcharge site.ini.append.php, qu'en fait, le design principal à utiliser n'est plus admin mais plain_site et qu'il y a maintenant un site de repli nommé base.
  4. Le système regarde dans les répertoires des extensions s'il ne trouve pas de nouvelles surcharges qui viendraient annuler celles qu'il a trouvées dans le siteaccess luxpopuli
  5. Le système regarde dans le répertoire de surcharge globale settings/override/ s'il n'y a pas une ou plusieurs surcharges qui annuleraient toutes les autres.

A travers cet exemple on voit très bien que le système utilise des informations provenant à la fois des fichiers de configuration par défaut ( StandardDesign = standard est une information issue de site.ini) et des informations provenant des fichiers de surcharge.

:
Le siteaccess d'administration n'utilise qu'un seul design: design/admin/ et n'a recours à aucun design de repli.

Mais qu'est-ce donc ?

Un design est un répertoire contenant l'ensemble des informations nécessaires:

  • pour définir la mise en page de chacune des pages du site
  • pour extraire les informations des objets de contenu du site (articles, news, forum, etc...)

Pour la mise en page il s'agit des éléments suivants:

  • feuilles de style CSS
  • javascript
  • images (logo, bannières, etc... et non celles insérées dans le corps d'un article, ou d'une news ou faisant partie d'une galerie d'image).
  • flash
  • etc...

Pour le second point, l'extraction des données à afficher, il s'agit essentiellement:

  • des templates de noeud

Les templates de noeud contiennent, la plupart du temps, également des éléments de mise en page/forme du contenu qui sera affiché.

Intérêt du repli automatique ?

Il est immense car il est responsable du fait que quel que soit les objets que nous créons nous avons l'assurance qu'ils seront toujours affichés. L'affichage produit ne sera vraisemblablement pas celui que nous souhaitons, mais il a le mérite d'exister.

Cet affichage par défaut, toujours accessible quel que soit l'objet créé à afficher, n'est possible que parce que le système de base, c'est à dire le système fonctionnel mis à notre disposition à la fin d'une installation nouvelle de eZ publish, fournit tous les templates nécessaires.

Les développeurs de eZ publish, conscients que l'affichage par défaut qu'ils ont imaginé et qu'ils proposent ne peut pas être retenu comme affichage définitif pour notre site, ont élaboré le système de repli afin que eZ publish commence toujours par regarder si nous n'avons pas créé de templates de noeud personnalisés, appelés templates de surcharge. S'il les trouve, alors ils sont utilisés en priorité. Et c'est seulement s'il n'existe aucun template de surcharge que le système se rabat sur un affichage par défaut. Mais dans tous les cas, le système nous assure qu'un affichage sera produit.

Répertoires importants

Pour utiliser certaines fonctions prédéfinies du langage spécifique à eZ publish utilisé dans les templates, il est important que certains éléments qui participent du design soient placés dans des répertoires eux aussi prédéfinis.

CSS

Les feuilles de style CSS doivent être placées dans:

design/plain_site/stylesheets/

Pour des informations plus détaillées sur la gestion des feuilles de styles, lisez le fichier design.ini

Les feuilles de styles peuvent être inclues grâce à l'opérateur de template ezdesign

IMAGES

Les images intégrées au design du site (donc pas celles inclues dans le corps des articles, dans les galeries d'images etc...) doivent être placées dans:

design/plain_site/images/

Les images peuvent être inclues grâce à l'opérateur de template ezimage

JAVASCRIPTS

Les javascripts doivent être placés dans:

design/plain_site/javascript/

qu'il faut créer car il n'existe pas par défaut. Un tel répertoire existe par défaut dans le design standard.

Au même titre que les feuilles de style, les javascripts peuvent être inclus grâce à l'opérateur de template ezdesign

Une liste de javascripts à inclure automatiquement dans le template pagelayout.tpl peut être définie dans le fichier de surcharge design.ini.append.php:

[JavaScriptSettings]
JavaScriptList[]=monsousrep/monjavascript.js

Et monjavascript.js sera bien sûr placé dans le répertoire:

design/plain_site/javascript/monsousrep/

Commentaires