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 / Configuring and enabling the extension -- Configurer et activer l'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

Configuring and enabling the extension -- Configurer et activer l'extension

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

View list / La vue list

Module views are defined in the file module.php. A module view makes it possible to access a PHP file. In our example we define the name of the view list with $ViewList['list'] and forward to the custom PHP script list.php.
Les vues des modules sont définies dans le fichier module.php et permettent d'accéder à un fichier PHP. Dans notre exemple, nous définissons le nom de la vue avec la syntaxe $ViewList['list'] qui renvoie au script PHP personnalisé list.php.

We also want to send some parameters to the view. For example, we define two parameters (ParamOne and ParamTwo) with the statement:
Comme nous souhaitons également envoyer des paramètres à la vue, nous définissons, par exemple, deux paramètres (ParamOne et ParamTwo) via la déclaration:

'params' => array('ParamOne','ParamTwo')

... in the script module.php.
...dans le fichier module.php.

<?php
 
// Introduction in the development of eZ Publish extensions
 
$Module = array( 'name' => 'Example Modul1' ); 
$ViewList = array();
 
// new View list with 2 fixed parameters and 
// 2 parameters in order 
// http://.../modul1/list/ $Params['ParamOne'] /
// $Params['ParamTwo']/ param4/$Params['4Param'] /param3/$Params['3Param'] 
 
 
$ViewList['list'] = array( 'script' => 'list.php', 
                           'functions' => array( 'read' ), 
                           'params' => array('ParamOne', 'ParamTwo'),
                           'unordered_params' => array('param3' => '3Param',
                                                       'param4' => '4Param') );
 
// The entries in the user rights 
// are used in the View definition, to assign rights to own View functions 
// in the user roles
 
$FunctionList = array(); 
$FunctionList['read'] = array(); 
 
?>

Listing 2. View configuration file: extension/jacextension/modules/modul1/module.php
Script 2. Fichier de configuration de la vue: extension/jacextension/modules/modul1/module.php

The resulting URL is:
L'URI résultant est

  • http://localhost/ez/index.php/plain_site/modul1/list/<ValueParamOne>/<ValueParamTwo>

Later we can access the variables in list.php with the following commands:
Nous pourrons ensuite, dans list.php, accéder aux variables avec les commandes:

$valueParamOne = $Params['ParamOne']; 
$valueParamTwo = $Params['ParamTwo'];

This representation of parameter access is called ordered parameters.
Cette représentation de l'accès aux paramètres est appelée paramètres ordonnés.

Unordered parameters adjust to the ordered parameters and consist of name-value pairs. For example:
Les paramètres non ordonnés permettent de réorganiser les paramètres ordonnés et se composent de paires nom-valeur. Par exemple:

http://localhost/ez/index.php/plain_site/modul1/list/ValueParamOne/ValueParamTwo/(param3)/ValueParam3/(param4)/ValueParam4

The definition is similar to the ordered parameters in module.php with:
Leur définition dans le fichier module.php est similaire à celle des paramètres ordonnées:

'unordered_params' => array('param3' => '3Param', 'param4' => '4Param' )

Here we specified that param4 in URL matches 4param parameter in the PHP view.
Nous spécifions ici que dans l'URI, param4 correspond au paramètre 4param de la vue PHP.

For example, if the View command has the value .../param4/141, then eZ Publish recognises that the parameter param4 has been specified and we can read value 141 from the parameter array of the module with the statement:
Si la commande View a, par exemple, la valeur .../param4/141, alors eZ Publish reconnaît que le paramètre param4 est spécifié et nous pouvons donc lire la valeur 141 depuis le tableau des paramètres du module grâce à la déclaration:

$Params['4Param']

Unordered parameters can change their order. If no unordered parameter is set, then eZ Publish sets the value to false. Ordered parameters must be defined; otherwise they are assigned a NULL (zero) value.
Les paramètres non-ordonnés peuvent modifier leur ordre. Lorsqu'aucun de ces paramètres n'est défini, eZ Publish définit alors leur valeur à false. Les paramètres ordonnés doivent être définis sous peine de voir leur valeur assignée à la valeur NULL (zéro).

The URL http://localhost/ez/index.php/plain_site/modul1/list/table/5/(param4)/141/(param3)/131 specifies the parameter view as follows:
L'URI http://localhost/ez/index.php/plain_site/modul1/list/table/5/(param4)/141/(param3)/131 spécifie ainsi les paramètres de la vue:

$Params['ParamOne'] = 'table'; 
$Params['ParamTwo'] = '5'; 
$Params['3Param'] = '131'; 
$Params['4Param'] = '141';

For more information, refer to the eZ Publish documentation at
Pour de plus amples informations, reportez-vous à cette documentation d'eZ Publish: Modules et vues

The general convention is to create a PHP file with a file name corresponding to the view name in the URL. This allows you to recognise from the URL which PHP file is being loaded. For example:
La convention générale veut que l'on crée un fichier PHP dont le nom correspond au nom de la vue présente dans l'URI. Cela vous permet, en lisant l'URI, de savoir quel fichier PHP est chargé. Par exemple:

  • http://localhost/ez/index.php/plain_site/content/view/full/2

...is forwarding the view.php in the kernel module "content" (<ezroot>/kernel/content/view.php).
...renvoie la vue view.php du module content du noyau (<ezroot>/kernel/content/view.php).

Hint: The kernel modules of eZ Publish are a valuable source of information and examples for programmers new to eZ Publish. The structure of kernel modules is the same as for an extension, for example our modul1 example above.
Astuce: Les modules du noyau d'eZ Publish représentent une source précieuse d'information et autant d'exemples pour les nouveaux développeurs. Leur structure est identique à celle des modules des extensions, comme par exemple pour notre module modul1 ci-dessus.

To visualize the call of the view list on the screen, we add the "echo" command in list.php, which interprets the parameters on the screen. The listing below shows our code for list.php:
Pour visualiser à l'écran l'appel de la vue list, nous ajoutons, dans le fichier list.php, la commande echo qui interprète les paramètres à l'écran. Le script ci-après illustre notre code du fichier list.php:

<?php
 
// take current object of type eZModule 
$Module = $Params['Module'];
 
// read parameter Ordered View 
// http://.../modul1/list/ $Params['ParamOne'] / $Params['ParamTwo'] 
// for example .../modul1/list/view/5
$valueParamOne = $Params['ParamOne']; 
$valueParamTwo = $Params['ParamTwo'];
 
// read parameter UnOrdered View 
// http://.../modul1/list/(param4)/$Params['4Param']/(param3)/$Params['3Param'] 
// for example.../modul1/list/.../.../(param4)/141/(param3)/131
$valueParam3 = $Params['3Param']; 
$valueParam4 = $Params['4Param'];
 
// show values of the View parameter
echo 'Example: modul1/list/'.
        $valueParamOne .'/ '.
        $valueParamTwo .'/(param4)/'.
        $valueParam4 .'/(param3)/'.
        $valueParam3;
 
?>

Listing 3. Function file of view list: extension/jacextension/modules/modul1/list.php
Script 3. Le fichier des fonctions de la vue list: extension/jacextension/modules/modul1/list.php

Commentaires