29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Dossiers techniques / eZ Publish : An Introduction to Developing eZ Publish Extensions / Creating a new extension -- Créer une nouvelle extension





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : An Introduction to Developing eZ Publish Extensions

Table des matières

  1. Introduction au développement d'extensions eZ Publish
  2. What are eZ Publish extensions ? -- Qu'est-ce que les extensions eZ Publish ?
  3. Creating a new extension -- Créer une nouvelle extension
  4. Configuring and enabling the extension -- Configurer et activer l'extension
  5. Activating the extension -- Activer l'extension
  6. Template system -- Le système de templates
  7. Creating a view -- Créer une vue
  8. Accessing the database -- Accéder à la base de données
  9. Template fetch function -- Fonction de recherche pour template
  10. Template operators -- Les opérateurs de templates
  11. INI file -- Le fichier INI
  12. Conclusion

Creating a new extension -- Créer une nouvelle extension

Date de publication: le samedi 20 août 2011 à 09h24
Dernière modification: par Pascal BOYER le samedi 3 septembre 2011 à 12h03

Now we will study the example “jacextension” to learn the basics of extension development in eZ Publish. We will walk through the steps of creating an extension and will look at the basic PHP classes in the eZ Publish Framework.
Nous allons à présent étudier l'exemple jacextension afin d'acquérir les bases du développement d'une extension eZ Publish. Nous suivrons les différentes étapes de sa création et aborderons les bases des classes PHP du framework eZ Publish.

The tutorial will cover the following concepts:
Ce tutoriel couvre les concepts suivants:

  • Access to the database (eZ Framework – class eZPersistentObject)
    Accès à la base de données (eZ Framework – class eZPersistentObject)
  • Access to .ini configuration files (eZ Framework – class eZINI)
    Accès aux fichiers de configuration .ini (eZ Framework – class eZINI)
  • Access to GET and POST session variables (eZ Framework – class eZHTTPTool)
    Accès aux variables de session GET et POST (eZ Framework – class eZHTTPTool)
  • Creation of custom debug messages / log files (eZ Framework – class eZDebug)
    Création de messages de débogage et de fichiers de log personnalisés (eZ Framework – class eZDebug)
  • Use of the privilege system for new views of a module
    Utilisation du système des privilèges pour les nouvelles vues d'un module
  • Extending the template system for your own template fetch functions or operators
    Enrichir le système de templates pour vos propres fonctions de recherche (fetch) ou pour vos propres opérateurs.

Requirements / Prérequis

To work through the tutorial, eZ Publish first must be properly installed (download the latest version here). To do this, create a default site using the eZ Publish Setup Wizard, specifying “URL” in the siteaccess configuration and a MySQL database called “ezp_plain” (character set utf-8).
Afin de travailler correctement avec ce tutoriel, eZ Publish doit être bien sûr correctement installé ( Téléchargez la dernière version ici ). Pour cela, créez un site grâce à l'assistant d'installation d'eZ Publish et spécifiez URL lors de la configuration du siteaccess. Créez également une base de données MySQL ezp_plain (ayant pour jeux de caractères utf-8).

This creates two siteaccesses: plain_site and plain_site_admin, accessed through the following URLs:
Cette installation créera par défaut deux siteaccess: plain_site et plain_site_admin accessibles grâce aux URI suivants:

  • http://localhost/ez/index.php/plain_site (User view / Site public)
  • http://localhost/ez/index.php/plain_site_admin (Administrator view / Interface d'administration)

(localhost/ez/ is the root path of the eZ Publish directory.)
(dans les deux URI ci-dessus, localhost/ez/ constitue le chemin du répertoire racine d'eZ Publish)

Setting up the extension -- Configurer l'extension

Now we will create and activate a new extension called “jacextension”. It will contain one module called “modul1”, with a view list that runs the PHP script list.php.
Nous allons à présent créer et activer une nouvelle extension nommée jacextension. Elle contient un module modul1 associé à une vue list qui exécute le script PHP list.php.

To do this, on the system command line we navigate to the directory extension/ beneath the main eZ Publish directory and create a new directory called jacextension/ with the following subdirectories and PHP files:
On commence par se placer dans le répertoire extension/, situé à la racine du répertoire d'installation d'eZ Publish, pour y créer un nouveau répertoire jacextension/ ainsi que l'arborescence et les fichiers PHP suivants:

ez/
|-- extension/
|   |-- jacextension/
|   |   |-- modules/
|   |   |   |-- modul1/
|   |   |   |   |-- list.php
|   |   |   |   |-- module.php 
|   |   |-- settings/
|   |   |   |-- module.ini.append.php 

In the configuration file module.ini.append.php we tell eZ Publish to search for modules in jacextension. This will make eZ Publish try to load all modules (such as modul1), which are in the directory extension/jacextension/modules/ .
Dans le fichier de configuration module.ini.append.php nous indiquons à eZ Publish de rechercher les modules dans jacextension. Ceci aura pour conséquence d'obliger eZ Publish à charger tous les modules (dont modul1) présents dans le répertoire extension/jacextension/modules/.

Hint: In INI entries be careful not to leave blank spaces at the end of lines, as the variables might not be parsed correctly.
Astuce: faites attention à ne pas laisser d'espaces blancs en fin de ligne dans les fichiers INI sous peine de voir les variables incorrectement analysées.

<?php /* #?ini charset="utf-8"?
 
# tell ez publish to search after modules in the extension jacextension
[ModuleSettings]
ExtensionRepositories[]=jacextension
# For eZ Publish 4.1 and up you'll need to specify your module name as well
ModuleList[]=modul1
 
*/ ?>

Listing 1. Module configuration file: extension/jacextension/settings/module.ini.append.php
Script 1. Fichier de configuration du module: extension/jacextension/settings/module.ini.append.php

Commentaires