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




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

Modules and views -- Modules et vues

Date de publication: le mardi 22 mars 2011 à 12h16
Dernière modification: par Pascal BOYER le dimanche 27 mars 2011 à 21h26

28/09/2010 10:26  

versions 3.9, 3.10, 4.x

module offers an HTTP interface which can be used for web based interaction with eZ Publish. While some modules offer an interface to kernel functionality, others are more or less independent of the kernel. The system comes with a collection of modules that cover the needs of typical everyday tasks. For example, the content module provides an interface that makes it possible to use a web browser to manage actual content. It is possible to extend the system by creating custom modules for special needs. Custom modules have to be programmed in PHP. The following table gives an overview of some of the most commonly used modules that come with eZ Publish.
Un module offre une interface HTTP pouvant être utilisée pour interférer avec le système eZ Publish. Alors que certains modules offrent une interface avec des fonctionnalités du noyau, d'autres sont plus ou moins indépendants de ce dernier. Le système fournit un ensemble de modules couvrant les besoins des tâches journalières les plus courantes. Le module content fournit, par exemple, une interface permettant d'utiliser un navigateur pour gérer du contenu. Il est par ailleurs possible d'étendre le système en créant des modules personnalisés pour des besoins spécifiques. Ces modules devront être écrits en PHP. Le tableau suivant présente un aperçu de quelques uns des modules les plus utilisés: 

Module Description
Content   The "Content" module provides an interface to the content engine in the eZ publish kernel. This module makes it possible to display, edit, search and translate the contents of objects, manage the node tree and so on.
Le module content fournit une interface pour le moteur de contenu situé dans le noyau de eZ Publish. Ce module permet d'afficher, d'éditer, de rechercher et de traduire le contenu des objets, de gérer l'arbre de nœuds, etc...
User   The "User" module provides an interface to the user management system in the kernel. This module makes it possible to log users in and out of the system. In addition, it also provides functionality related to user registration, user activation, password changing, etc
Le module user fournit une interface pour le système de gestion des utilisateurs situé dans le noyau. Ce module permet de connecter/déconnecter les utilisateurs et fournit de plus des fonctions permettant d'enregistrer des utilisateurs, de les activer, de changer leur mot de passe, etc...
Role   The "Role" module provides an interface to the access control system in the kernel. This module makes it possible to create, modify and delete roles and policies. In addition, it provides functionality for assigning roles to different users and user groups.
Le module role fournit une interface pour le système de contrôle d'accès situé dans le noyau. Ce module permet de créer, de modifier et d'effacer les rôles et les politiques de droits associées aux utilisateurs. Il permet de plus d'assigner des rôles à différents utilisateurs ou groupes d'utilisateurs.

Please refer to the Modules section of the reference chapter for a comprehensive list of all the built-in modules.
Référez-vous à la section Modules  du chapitre Référence  pour une liste complète des modules fournis par eZ Publish.

Module execution / Exécution de modules

Every time eZ Publish is accessed using a web browser, the client application indirectly interacts with one of the modules that are present in the system. The requested URL tells eZ Publish about which module it should execute in order to process the request. In particular, the first part of the URL reveals the name of the module. This is usually the part that comes directly after "index.php" unless the URI access method is used. The following example shows a typical eZ Publish URL:
Chaque fois que l'on accède à eZ Publish avec un navigateur, l'application cliente (le navigateur) interagit indirectement avec l'un des modules présents sur le système. L'URL demandé indique à eZ Publish quel module exécuter afin de répondre à la requête (l'URL demandé). En particulier, la première partie de l'URL correspond au nom du module. C'est la partie de l'URL qui se trouve directement après index.php, à moins que la méthode d'accès par URI  soit utilisée. L'exemple suivant illustre un URL typique de eZ Publish:

http://www.example.com/index.php/content/edit/13/03

A quick glance at this URL reveals that the request is directed at the content module. Another typical example of an eZ Publish URL could be something like this: 
Un rapide coup d’œil sur l'URL nous apprend que la requête est dirigée vers le module content. Un autre exemple typique d'URL eZ Publish pourrait ressembler à ceci:

http://www.example.com/index.php/user/login

By looking at the URL, we can immediately tell that eZ publish will attempt to execute the user module when processing this request. Obviously, some additional information is also specified in the URLs. In the first example, the name of the module is followed by "/edit/13/03". In the second example, the name of module is followed by "/login". These additional strings control the behavior of the requested module and are explained below.
En regardant l'URL nous pouvons immédiatement dire que eZ Publish essaiera d'exécuter le module user lors du traitement de cette requête. Évidemment, quelques informations complémentaires peuvent être également spécifiées dans l'URL. Dans le premier exemple, le nom du module est suivi de /edit/13/03/. Dans le second exemple, le nom du module est suivi par /login. Ces chaînes de caractères supplémentaires contrôlent le comportement du module demandé et sont expliquées plus bas.

Module views / Vues des modules

A module consists of a set views. A view can be thought of as an interface to a module. By using views, it is possible to reach various functions that a module provides. For example, among other things, the content module provides views for displaying, editing, searching and translating the contents of objects. The name of the view that should be accessed appears after the name of the module (separated by a slash) in the URL. In the first example above, eZ Publish is instructed to access the "edit" view within the content module. In the second example, eZ Publish is instructed to access the "login" view within the user module.
Un module, qui est composé d'un jeu de vues, peut être imaginée comme une interface avec un module. En utilisant les vues, il devient possible d'atteindre les diverses fonctions que proposent un module. Par exemple, et entre autres choses, le module content fournit des vues pour afficher, éditer, rechercher et traduire les contenus des objets. Le nom de la vue à utiliser apparaît, dans l'URL, après le nom du module (séparée par un slash). Dans le premier exemple ci-dessus, eZ Publish sait qu'il doit utiliser la vue edit du module content. Dans le second exemple, eZ Publish sait qu'il doit utiliser la vue login du module user.

When a view is called, eZ Publish starts up the program code that is associated with that view. Upon completion, the view returns a result to the module, which in turn returns it to the rest of the system. The result is put inside a template variable called $module_result.content which is available from the main template, the pagelayout. Please refer to the template generation  section of the "Templates" chapter for more information about this part of the system.
Lorsqu'une vue est appelée, eZ Publish lance le programme (le code) associé à cette vue. L'exécution du programme une fois terminée, la vue passe le résultat au module qui à son tour le passe au reste du système. Le résultat est placé dans une variable de template appelée $module_result.content disponible dans le template principal  pagelayout.tpl. Référez-vous au chapitre génération de templates  de la section Templates  pour de plus amples informations sur cette partie du système.

View parameters / Paramètres de vue

Some views support on one or more parameters. A view parameter makes it possible to pass information to the view itself and thus allows the view to be controlled from within the requested URL. The view parameters are appended after the name of the view in the URL. In the first example above, the following parameters are passed to the view: "13" and "03". These parameters will instruct the edit view of the content module to provide an interface for editing the third version of the thirteenth content object in the system. The URL given in the second example does not make use of any view parameters. The view mechanism supports two types of parameters:
Certaines vues supportent un ou plusieurs paramètres. Un paramètre de vue permet de passer des informations à la vue elle-même et donc de la contrôler directement à partir de l'URL demandé. Les paramètres de vue sont ajoutés dans l'URL après le nom de la vue. Dans le premier exemple ci-dessus, les paramètres suivants sont passés à la vue: "13" et "03". Ils indiquent à la vue edit du module content de fournir une interface pour éditer la troisième version du treizième objet de contenu du système. L'URL du second exemple n'utilise aucun paramètre de vue. Le mécanisme de vue supporte deux types de paramètres:

  • Ordered parameters 
    Les paramètre ordonnés
  • Unordered parameters 
    Les paramètres non ordonnés.

The ordered parameters have to be separated by slashes and they must come after the name of the view. In addition, they have to be provided in the same order as it is specified in the module's definition. For example, if the view parameters in the first example get mixed up, eZ Publish will attempt to edit the thirteenth version of object number three (instead of version number three of object number thirteen).
Les paramètres ordonnés doivent être séparés par des slash et placés après le nom de la vue. De plus, ils doivent être placés dans le même ordre que celui spécifié par la définition du module. Si l'on inverse, par exemple, les paramètres de vue du premier exemple, eZ Publish essaiera alors d'éditer la treizième version du troisième objet de contenu du système (au lieu de la troisième version du treizième objet de contenu du système).

As the name suggests, the unordered parameters can be provided in an arbitrary order. If the view supports ordered parameters, the unordered parameters must come after the ordered parameters. If the view doesn't support ordered parameters, the unordered parameters will come directly after the name of the view in the URL. The unordered parameters must be provided in pairs. A pair consists of the parameter's name and value separated by a slash. The following example shows an imaginary eZ Publish URL with unordered parameters passed to the requested view:
Comme le nom le laisse deviner, les paramètres non ordonnés peuvent être énumérés dans n'importe quel ordre. Si la vue supporte les paramètres ordonnés, les paramètres non ordonnés seront placés après les paramètres ordonnés. Dans le cas contraire, les paramètres non ordonnés seront placés dans l'URL directement après le nom de la vue. Les paramètres non ordonnés doivent être fournis par paire. Une paire est composée du nom du paramètre séparé par un slash de la valeur du paramètre. L'exemple suivant montre un URL eZ Publish imaginaire contenant des paramètres non ordonnés passés à la vue demandée:

http://www.example.com/index.php/video/dvd/button/play

The address in the example above tells eZ Publish to run the imaginary "video" module and execute the "dvd" view. A variable called "button" will be created and made available for the view code. The value of the variable will be set to "play". It is up to the PHP code of the view to discover this variable and to carry out a necessary sequence of actions.
L'adresse, dans l'exemple ci-dessus, indique à eZ Publish d'afficher le module imaginaire video et d'exécuter la vue dvd. Une variable appelée "button" sera créée et placée dans le code de la vue. La valeur de cette variable sera positionnée à "play". C'est au code PHP de la vue de découvrir cette variable et d'effectuer la séquence d'actions nécessaire.

POST variables / Variables POST

Some views make use of parameters that are submitted by the way of forms through the HTTP POST method. For example, the action view of the content module makes an extensive use of POST variables.
Certaines vues utilisent des paramètres envoyés au moyen d'un formulaire par la méthode HTTP POST. Par exemple, la vue action du module content utilise intensément les variables POST.

GET variables / Variables GET (ne concerne pas les versions 3.9)

Views can also make use of parameters that are submitted through the HTTP GET method. For example, parameters of the treemenu view within the content module are transferred using GET variables.
Les vues peuvent également utiliser des paramètres transmis via la méthode HTTP GET. Par exemple, des paramètres de la vue treemenu du module content sont transmis à l'aide de variables GET.

The default request / Requête par défaut

In order to be able to produce proper output, eZ Publish must know which module it should run and which view that should be executed. In other words, every URL has to contain at least the name of an existing module and a view. If an incomplete or mistyped URL is provided, eZ Publish will display an error page revealing what's wrong (missing/mistyped module or view). If the requested URL doesn't contain anything after "index.php" (except maybe a slash), the default module/view combination will be executed. The default module/view combination can be configured using the "IndexPage" setting under "[SiteSettings]" in an override for "site.ini". The default setting is "/content/view/full/2". It instructs eZ Publish to show a full view of node 2, the content top level node. In other words, if the following request is made:
Afin de produire des sorties/résultats corrects, eZ Publish doit savoir quel module utiliser et quelle vue exécuter. En d'autres termes, tout URL doit contenir au moins le nom d'un module existant et une vue. Si un URL incomplet ou incorrect est demandé, eZ Publish affichera une page d'erreur indiquant ce qui ne vas pas (vue ou module inexistant ou dont le nom a été mal orthographié). Si l'URL ne contient rien après index.php (excepté peut-être un slash), le couple module/vue par défaut sera exécuté. Ce couple module/vue par défaut peut être configuré par l'intermédiaire du paramètre IndexPage de la section [SiteSettings] dans l'une des surcharges de site.ini. La valeur par défaut de ce paramètre est /content/view/full/2 et indique à eZ Publish d'afficher la vue full du nœud 2, nœud de plus haut niveau du module content. En clair, si la requête suivante est faite:

http://www.example.com/index.php 

...eZ Publish will behave as if the following URL was requested:
...alors eZ publish se comportera comme si cet URL avait été demandé:

http://www.example.com/index.php/content/view/full/2 

No redirection or page reload will be made, which means that the address field of the browser will remain unchanged.
Aucune redirection ni aucun rafraîchissement de page ne sera réalisé, ce qui signifie que le champ d'adresse du navigateur restera inchangé.

Commentaires