Créer une extension eZ publish

Pour développer d’une façon facile sous le CMS eZPublish, vous devez créer votre propre extension, dans ce tutoriel nous allons voir comment créer une extension, La première question qui se pose pourquoi créé une telle extension ??

C’est pour éviter de toucher directement sur le code existent (kernel, design, etc.), pour faire une mise à jour au futur facilement et pour ne pas perdre son propre code, etc.

Dès l’installation d’eZPublish, ce dernier génère une arborescence standard qu’il propose.

extension

Pour mieux comprendre, on va détailler les deux répertoires, les plus utilisés

A – extension : comporte les différents extensions d’eZ, que ce soit les extensions installées par défaut, ou bien les extensions qu’on peut les installer, eZ fonctionne avec ce système des extensions,  donc si on veut ajouter notre propre fonctionnalités, on doit passer par ce système.

B – settings : comporte les différents fichiers de configurations.

Nous allons créer notre extension que l’on nomme « ezsite  »  sous le dossier extension.

extension_1

L’extension ezsite contient des sous-dossiers :

classes : contient les différentes classes qui assurent le fonctionnement d’eZ.

design : contient le design de notre extension.

modules  : contient les différents modules qu’on veut créer.

settings : contient les différents fichiers de configuration de l’extension. Ces fichiers sont la surcharge des fichiers qu’on veut utiliser.

Ainsi d’autre sous-dossier comme (autoloads, cronjobs, etc.).

Après avoir créé  l’extension ezsite ainsi  les sous-dossiers, nous allons détailler un peu plus les choses.

Sous le dossier  « design »,  on crée un dossier que l’on nomme dans notre cas « ezsite » (vous pouvez le nommer  comme vous voulez).  Ce dernier contient  des différents sous-répertoires qu’on va détailler ensemble

extension_3

– images  : contient les images de sites.

B –  javascript  : contient les fichiers js.

C –  override  : on va le détailler dans un autre tutorial.

D –  stylesheets  : contient les fichiers de styles.

E – templates :  contient  le fichier  « pagelayout.tpl »  et le fichier « page_head.tpl » qui contient les inclusions nécessaires pour les styles et les scripts. Ainsi d’autres sous-répertoires (menu, parts, etc.).

noter bien pour le fichier page_head.tpl, il s’agit juste d’une façon d’organisation, même chose pour les sous -dossiers (parts et menu, etc.); on pouvait tout mettre directement sur le fichier pagelayout.tpl

Pour le template « pagelayout.tpl ». Il définit la structure globale de notre site front end.( header, content, blog gauche, etc.), je détaille un peu :

Le pagelayout contient le HTML, les balises head et body.  En outre, il dicte l’aspect global d’un site. elle est utilisé pour décrire la structure visuelle (mise en page, logo, menu principal, footer, etc). qui sera présenté pour chaque demande de page

extensions_9

Cette template doit contenir la variable {$module_result.content}.

A chaque demandeeZ Publish génère automatiquement un tableau appelé « module_result ». Ce tableau disponible uniquement dans le template paglayout. Il contient toutes les informations nécessaires sur quel module qui a été exécute. quelle vue a été appelé, la sortie qui a été produite et ainsi de suite.

Lorsque la mise en page est rendue. la partie {$module_result.content} sera remplacée par la production réelle que le module demandé a produit

Veuillez se référer à la documentation « Variables dans pagelayout »   pour savoir quelles sont les variables qui peuvent être consulté à partir de la pagelayout.
Pour  qu’une extension soit  reconnue par eZ Publish,  elle doit être activée et paramétrée :

Dans votre extension « ezsite ». :

extension/ezsite/settings/design.ini.append.php.

extension_4

Si vous vous rappelez bien, nous avons parlé d’un dossier settings situé dans l’arborescence (je ne parle pas du dossier settings de notre extension).

Alors, ce dossier contient des fichiers de configurations, un répertoire override et un répertoire siteaccess. Sous ce dernier nous avons les différents siteaccess présentés sur le système. Parmi eux on trouve les deux sites créent lors de l’installation dans mon cas (projet => Front-office) et (projet_admin =>Back-office).

Dans le siteaccess « projet », on va éditer le fichier « site.ini.append.php », et faire placer notre design que nous avons créé en premier.

extension_5

Maintenant il nous reste d’activer notre extension, pour cela nous avons deux possibilités, soit passé par le fichier de configuration :

/settings/override/site.ini.append.php

extension_6

Soit par le BO (Back-office) :  Onglet Administration->Extensions.

extension_7

A ce stade, vous avez créé votre propre extension qui est fonctionnelle. On se donne rendez-vous dans un prochain article