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

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

Activating the extension -- Activer l'extension

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

To test the new view list of the module modul1 in jacextension, we have to activate the extension. This is done in the global site.ini.append.php (see listing 4) or in the site.ini.append.php associated with the applicable siteaccess (see listing 5). In the global siteaccess, the extension is activated via the ActiveExtensions[] setting. If you are activating the extension for a specific siteaccess, use the ActiveAccessExtensions[] setting.
Afin de tester la nouvelle vue list du module modul1 de l'extension jacextension, nous devons activer cette dernière dans le fichier de surcharge globale site.ini.append.php (voir Script 4) ou dans le fichier de surcharge site.ini.append.php associé au siteaccess en vigueur (voir Script 5). Dans le siteaccess global, l'extension est activée via le paramètre ActiveExtensions[]. En revanche, si vous souhaitez activer l'extension pour un siteaccess particulier, utilisez alors le paramètre ActiveAccessExtensions[].

<?php 
/* #?ini charset="utf-8"? 
[ExtensionSettings] 
ActiveExtensions[] 
ActiveExtensions[]=jacextension
... 
*/ ?>

Listing 4. Option 1 – Activating the extension for all existing siteaccesses in the global configuration file: settings/override/site.ini.append.php
Script 4. Option 1 - Activer les extensions pour tous les siteaccess définis dans le fichier de configuration globale: settings/override/site.ini.append.php

<?php 
/* #?ini charset="utf-8"? 
... 
[ExtensionSettings] 
ActiveAccessExtensions[]=jacextension
... 
*/ ?>

Listing 5. Option 2 – Activating extensions in the configuration file of a specific siteaccess, for example: settings/siteaccess/plain_site/site.ini.append.php
Script 5. Option 2 - Activer les extensions dans le fichier de configuration d'un siteaccess particulier, par exemple: settings/siteaccess/plain_site/site.ini.append.php

Privilege system / Système des privilèges

If we try to open the view list of modul1 with following URL:
Si nous essayons d'ouvrir la vue list du module modul1 avec l'URI suivant:

  • http://localhost/ez/index.php/plain_site/modul1/list/table/5/(param4)/141

...eZ Publish returns an “access denied” message. Why? Because the Anonymous user does not have the necessary privileges.
...alors eZ Publish renvoie un message «accès refusé». Pourquoi ? Parce que l'utilisateur Anonymous ne dispose pas des droits nécessaires.

There are two ways to grant privileges. We could grant access to all users with the entry PolicyOmitList[]=modul1/list in the configuration file extension/jacextension/settings/site.ini.append.php, (see listing 6).
Il existe deux façons d'accorder des droits. Nous pouvons les accorder à tous les utilisateurs via l'entrée PolicyOmitList[]=modul1/list du fichier de configuration extension/jacextension/settings/site.ini.append.php, (voir Script 6).

<?php
/* #?ini charset="utf-8"? 
[RoleSettings] 
PolicyOmitList[]=modul1/list
*/ ?>

Listing 6. Set the access rights to the view list of modul1 for all users, in the configuration file extension/jacextension/settings/site.ini.append.php
Script 6. Définir les droits d'accès à la vue list du module modul1 pour tous les utilisateurs, dans le fichier de configuration extension/jacextension/settings/site.ini.append.php

Alternatively, we could alter the user access privileges using the eZ Publish Administration Interface. To do this we have to change the role Anonymous to allow access to the functions of module modul1. Use the following URL: http://localhost/ez/index.php/plain_site_admin/role/view/1.
Une autre méthode consiste à modifier les droits d'accès des utilisateurs grâce à l'interface d'administration d'eZ Publish. Pour cela, nous devons modifier le rôle Anonymous afin d'autoriser l'accès aux fonctions du module modul1. Utilisez l'URI suivant: http://localhost/ez/index.php/plain_site_admin/role/view/1

The functions that can have an extension module are defined in module.php with the array $FunctionList. The link is done in the definition of the view with the Array key functions. So in our example we link the view list with the user function read:
Les fonctions pouvant avoir un module d'extension sont définies dans le fichier module.php par le tableau $FunctionList. Le lien est donné dans la définition de la vue avec les fonctions clef du tableau (???). Dans notre exemple, nous lions donc la vue list avec la fonction utilisateur read.

$FunctionList['read'] = array(); // with 'functions' => array( 'read' ) in the $ViewList array

Using $FunctionList, it is possible to link individual views of a module with specific user functions. There is also the user function "create", which is assigned to all views that create content. In this case, we want to limit access to editors.
L'utilisation de $FunctionList permet de lier des vues particulières d'un module à des fonctions utilisateur spécifiques. Il existe également la fonction utilisateur create (créer) assignée à toutes les vues créant du contenu. Dans notre cas, nous souhaitons limiter l'accès aux éditeurs/rédacteurs.

The "read" function is available to all the users who need read rights, and also for the Anonymous user.
La fonction read est disponible pour tous les utilisateurs nécessitant des droits de lecture et pour l'utilisateur Anonymous.

For advanced settings on privileges, please check the tutorial "Adding custom security policy limitations to your modules".
Pour de plus amples information sur le paramétrage des droits, veuillez vous reporter au tutoriel « Adding custom security policy limitations to your modules -- Ajouter des limitations personnalisées aux règles de sécurité de vos modules ».

Commentaires