Organisation de la ZMI

Dans cette partie, nous allons décrire les éléments de la ZMI un par un tels qu'ils apparaissent sur la page principale (http:/monsite:8080/manage).

Global

Ce dossier contient les éléments communs pour tous les utilisateurs du site. On y retrouve en particulier les boîtes globales (dans le dossier Preferences/boxes_container).

Note

En général l'interface d'administration de CPS est suffisante pour la gestion des boîtes. Il y a cependant une opération qui nécessite de passer dans la ZMI. Celle qui consiste à rendre visible des utilisateurs uniquement leur espace privé.

Pour cela il faut aller dans Global/Preferences/boxes_container et sélectionner la boîte privateareas, dans le champ paths entrer simplement un ~.

Groups

Ce dossier correspond aux Espaces de travail.

MailHost

Cet objet sert à envoyer des mails à partir de Zope.

Members

Ce dossier contient les espaces privés des utilisateurs.

Public

Ce dossier est susceptible d'être renommé, il correspond à la racine des rubriques de publication.

acl_users

Ce dossier contient la liste des utilisateurs et des groupes.

content_type_registry

XXX

cookie_authentication

XXX

cpsupdate

External Method permettant la mise à jour du site. XXX

index_html

The default page served by ZOPE.

La page qui sera renvoyée par défaut par Zope lors de la consultation du site.

portal_actions

Cette objet liste les principales actions disponibles dans la boîte d'actions (élément A sur la capture d'écran du site). Les actions sont décrites de la manière suivante :

Prototype d'une action

Name

Titre de l'action, c'est ce terme qui apparaît dans la boîte (il est traduit).

Id

XXX

Action

L'action executée lors du clique de l'utilisateur, elle doit être écrite en respectant la syntaxe TALES (utilisée également pour les expressions TAL).

L'action la plus simple est de la forme :

string:url
                                                

il s'agit d'un simple lien.

Permission

Les permissions que doit posséder l'utilisateur pour pouvoir voir cette action.

Condition

Cette condition permet de filtrer les actions qui sont affichées pour un utilisateur donné. Par exemple la condition member permet de n'afficher l'action qu'aux membres authentifiés.

Category

Ce champ permet de n'afficher l'action qu'à certains endroits du site. Les catégories les plus utilisées sont :

global

L'action apparaît partout sur le site.

object

Apparaît pour les objets du site. (XXX plus de détails)

folder

Apparaît si on est dans un dossier.

Visible

Permet d'afficher ou de masquer une action.

L'objet portal_actions appelle également d'autres objets qui viennent compléter sa liste d'actions. Ces objets sont listés dans l'onglet Action Providers.

On y trouve par exemple portal_membership qui ajoute les actions login et logout.

portal_boxes

Cette outil permet de manipuler les boîtes (globales et personnelles) à partir des scripts python. Il n'est donc pas utilisé dans la ZMI.

portal_catalog

Cet objet gère tout ce qui concerne l'indexation des objets du portail.

Contenu

Contents

Liste de tous les mots disponibles dans le portail. A chaque création ou modification d'un objet (ou bien lors de la mise à jour du catalogue) cette liste est mise à jour en appelant la méthode SearchableText de l'objet. Le résultat de cette méthode est ensuite décomposé en mots à l'aide des splitters.

Catalog

XXX

Indexes

Liste des indexes qui sont maintenus avec le nombre d'objets associés. On retrouve par exemple SearchableText qui est applicable à la quasi totalités des objets contenus dans le portail.

Les indexes sont de plusieurs types, ce qui permet d'en optimiser l'utilisation.

Metadata

XXX

Advanced

Le bouton Update Catalog permet de réindexer tous les objets du portail. Ce qui est indispensable lors de l'ajout d'un nouvel index par exemple, pour qu'il prenne en compte les objets déjà présents dans la base.

portal_discussion

XXX

portal_hierarchies

Ce Tool permet de gérer les hiérarchies du portail. Il contient par défaut la hiérarchie main. Celle-ci a trois propriétés :

Title

Inutilisé (XXX)

Hierarchy root in portal

Cet attribut est le plus important, il permet de déterminer quels sont les rubriques (Reviewed Hierarchy Level) qui vont appartenir à cette hiérarchie. Lors de la mise à jour du contenu de la hiérarchie (voire l'onglet Content dans la suite) toutes les rubriques disponibles dans la racine du site CPS seront récupérées puis leur chemin sera comparé à cet attribut. Toutes les rubriques qui auront un chemin commençant par cette Hierarchy Root feront partie de la rubrique.

Skip the root

XXX

Par l'intermédiaire de l'onglet Contents il est possible de voir quelles sont les rubriques associées à cette hiérarchie ainsi que la profondeur associée. Il est parfois nécessaire d'utiliser le bouton Rebuild Hierarchy pour mettre à jour le contenu de la hiérarchie ainsi que la profondeur des éléments (lors d'une modification de la propriété Hierarchy root in portal par exemple).

portal_memberdata

XXX

portal_membership

Cet outil permet entre autre de supprimer la création automatique d'un espace de travail privé pour chaque utilisateur.

Il ajoute également certaines actions liées à l'authentification.

Dans les scripts python, cet outil permet de récupérer l'identité de l'utilisateur courant.

portal_messages

Cet outil gère l'ensemble des traductions effectuées dans le portail. Par exemple c'est ici que peut être modifié le texte de la boîte d'accueil par défaut. Pour cela entrer welcome comme filtre puis cliquer sur __welcome_textbox__, il est alors possible de modifier le contenu de la boîte.

Note

Ici on renvoie du code html, mais ce n'est pas toujours possible, il n'est pas toujours interprété lors du rendu des pages.

portal_metadata

XXX

portal_metadirectories

Cet outil contient les différents annuaires qui sont disponibles au niveau du portail. Par défaut ces annuaires sont gérés par CPS mais ils peuvent également être obtenu à partir d'un serveur LDAP (voire section LDAP XXX).

Propriétés d'un annuaire

Title

Le titre de l'annuaire, c'est à dire le nom qu'il aura dans le portail CPS.

Description

La description de l'annuaire tel qu'elle apparaîtra dans le portail.

Entry property

Le nom de l'attribut servant d'identifiant unique pour les éléments de l'annuaire (login par exemple).

Display property

Le nom de l'attribut (le nom et le prénom par exemple) qui sera affiché pour identifier l'élément de l'annuaire dans les opérations d'administration (affectation des droits par exemple).

Read ACL

Permet de filtrer les personnes qui ont le droit de consulter l'annuaire (XXX à vérifier), tout le monde par défaut.

Write ACL

Permet de contrôler les personnes qui ont le droit de modifier une entrée, le manager et l'utilisateur détenteur du compte par défaut.

Create ACL

Les membres abilités à créer des entrées dans l'annuaire, les managers par défaut

Delete ACL

Les membres abilités à supprimer des entrées dans l'annuaire, le manager et l'utilisateur détenteur du compte par défaut.

Process after Create

Le nom d'un script à exécuter après la création d'un utilisateur (XXX à vérifier).

Process before Delete

Le nom d'un script à exécuter avant la suppression d'un utilisateur (XXX à vérifier).

* template

Les pages associées à l'administration de l'annuaire.

Les schémas permettent de définir les informations disponibles dans l'annuaires pour chaque élément.

Attributs d'un schéma

XXX

XXX

L'onglet Synchronize permet de XXX.

portal_preferences

XXX

portal_properties

XXX

portal_registration

XXX

portal_skins

Cet outil de type CMF Skins Tool permet de gérer les objets avec lesquels va interragir l'utilisateur du site. Cette partie ressemble à l'arborescense classique d'un serveur web de type Apache. Elle contient des ZPT (Zope Page Template) qui sont des pages HTML dynamiques et des scripts pythons qui vont générer le contenu de ces pages.

L'onglet Contents permet de voir un ensemble de dossiers. Certains sont marqués avec un petit cadenas qui traduit le fait qu'ils ne sont pas modifiables via la ZMI, à chacun de ces dossiers est associé un répertoire sur le système de fichiers. Par défaut il y a également un dossier qui n'est pas verrouillé et dans lequel on peut créer des objets de type ZPT ou Script, c'est le dossier custom.

Bien que le contenu des dossiers soit similaire à celui d'une arborescense de type Apache, leur organisation est différente. Dans l'onglet Properties on trouve en effet la notion de Skin. Une skin est matérialisée par une chaîne de caractère qui représente les dossiers qui sont utilisés lors de la consultation d'une page. Cela s'apparente au chemin (PATH) dans les systèmes de type unix.

Si le navigateur web de l'utilisateur demande au serveur le fichier main_stylesheet.css, ZOPE va d'abord regarder quelle est la skin par défaut (Default Skin) et si l'utilisateur utilise une skin particulière (si la variable REQUEST variable name est présente dans la requête sa valeur correspond à la skin qui doit être utilisée). Une fois la skin déterminée, le serveur va parcourir les dossiers correspondants dans l'ordre où ils sont nommés jusqu'à en trouver un qui contiennet le fichier demandé.

On comprend pourquoi le dossier custom figure en premier dans la skin utilisée par défaut, il permet de masquer les fichiers des dossiers suivants et donc de personnaliser l'apparence de son site. Si on place un fichier main_stylesheet.css dans le dossier custom c'est celui-là qui sera renvoyé par ZOPE et non plus celui contenu dans nuxcpsdefault. C'est grâce à ce genre de manipulations qu'on peut modifier l'apparence du site. Dans cette optique le dossier nuxcpsdefault contient les fichiers qui interviennent le plus dans l'apparence du site.

On peut se demander pourquoi il y a temps de dossiers dans portal_skins, en fait cela traduit l'aspect modulaire de ZOPE/CPS. Généralement lorsqu'un produit est ajouté au portail (prenons CPSSiteMap par exemple), il ajoute un nouveau dossier aux portal_skins qui contient les pages et les scripts associés à son utilisation (dans le cas de CPSSiteMap il s'agit d'un script générant le plan du site, et d'une ZPT l'affichant).

Quelques dossiers importants

custom

C'est dans ce dossier que vont se retrouver vos pages et vos scripts personnalisés. Lorsqu'il y a beaucoup de fichiers personnalisés on peut créer d'autres dossiers (objets de type Folder) afin de les organiser un peu, par exemple : custom_look, custom_documents, ... Dans ce cas il ne faut pas oublier d'ajouter ces dossiers à la skin en cours (onglet Properties).

nuxcpsdefault

Ce dossier contient les éléments qui interviennent le plus sur l'apparence du site.

Contenu

main_template

La ZPT donnant la structure de toutes les pages du portail.

main_template_elements

Des éléments qui sont inclus dans le main_template à l'aide du langage de macro METAL.

main_widgets

Des éléments qui sont utilisés dans plusieurs pages, comme les différentes listes de fichiers, ou bien les formulaires.

main_stylesheet.css

La feuille de style principale

*.gif

Les images utilisées pour le rendu des pages.

nuxcpsdocuments

Les fichiers associés au produit NuxCPSDocuments c'est à dire aux documents de type Note, Fichiers, FAQ, ... Si vous voulez modifier les formulaires d'édition de ces documents ou bien les pages de visualisation c'est ici qu'il faut venir les chercher.

nuxcpsflexibledocuments

Les fichiers associés au produit NuxCPSFlexibleDocuments c'est à dire aux documents de type Document structuré. Si vous voulez modifier les formulaires d'édition de ces documents ou bien les pages de visualisation c'est ici qu'il faut venir les chercher.

nuxmetadirectories

Les fichiers relatifs à la gestion des annuaires.

nuxportal

Les fichiers relatifs à la gestion des boîtes.

nuxcps

Tout ce qui est relatif à CPS et qui n'a pas sa place ailleurs, ou qui n'est pas spécifique à un produit, ou qui n'a pas été rangé :).

portal_types

Cet outil regroupe tous les types d'objets qui peuvent être manipulés directement ou indirectement par CPS. On retrouve par exemple les documents : File Document, FAQ Document, ... ou bien les boîtes : Doc Filter Box, Text Box, ...

Concernant les documents, le type Workgroup est très important, dans ses propriétés on retrouve en effet une liste nommée Allowed Content Types cette liste permet de sélectionner les objets que les utilisateurs peuvent créer dans leur espace de travail. Si on ne veut pas autoriser la création de FAQ par exemple, il suffit de déselectionner ce type de cette liste.

Pour chaque type il existe quelques propriétés qui peuvent être modifiées, comme le titre (nom que porte l'objet dans le portail CPS) ou bien l'icône associé. Par contre il faut être prudent concernant la manipulation des autres propriétés.

A chaque type est également associée une liste d'actions, certaines d'entre elles servent à la manipulation des documents par CPS comme isdocument ou bien issearchabledocument, d'autres servent à associer des pages au traitement des objets. Pour les documents on retrouve en général edit, view et create que l'on peut considérer comme des alias vers les pages permettant d'effectuer ces opérations.

portal_undo

XXX

portal_url

XXX

portal_version_catalog

XXX

portal_workflow

Cet outils regrouple la liste des workflows disponibles ainsi que les workflows qui sont associés à chaque type d'objet. Par exemple pour les documents, on peut voir les workflows publication_workflow et version_workflow qui gèrent respéctivement le système de publication et le support des versions.

Warning

Si vous créez de nouveaux types de documents au niveau de portal_types, il ne faut pas oublier de passer dans portal_workflow pour leur associer les bons workflows, dans le cas contraire ils ne pourront pas être publiés ou modifiés.

portal_workflow_schema

XXX