|
A complete introduction to Zope in French / Une complete introduction a Zope en Francais
I. Présentation générale
-
Zope est une plateforme objet de développement de sites Web, développé
en Python et open-source
-
Zope permet donc de créer des sites web traditionnels mais aussi
des sites web dynamiques, des applications Intranet, en manipulant des
objets Zope prédéfinis ou dérivés
Architecture de la plateforme Zope
Particularités
-
Zope possède sa propre base de données orientée
objet (ZODB) pour stocker les objets Zope. Cela signifie,
le site étant créé à l'aide de ces objets,
qu'aucun fichier ne figure sur le disque dur du serveur; Si nous ne le
souhaitons, tout fichier - HTML, image,... - est stocké dans sa
base de données par défaut (var / data.fs)
-
Il intègre une gestion de la sécurité très
performante. A partir des paramètres de la plateforme Zope, il est
facile de spécifier quelles sont les protections que l'on veut apporter
au site en général, mais aussi à chaque élément
du site. Par exemple, restriction de l'accès FTP...
-
Il est particulièrement adapté pour faire de la maintenance
de site :
-
il permet de détacher facilement l'information de sa présentation
-
via un navigateur web, il est facile d'apporter des modifications aux instances
d'objets Zope représentant la (ou les) application(s) web
-
Il intègre une gestion des utilisateurs très performante
:
-
Chaque utilisateur peut se voir attribuer un r�le lui donnant plus
ou moins de pouvoir dans la maintenance des objects Zope
-
Pour chaque objet Zope Folder, nous avons la possibilité
de spécifier un certain nombre d'utilisateurs pouvant intervenir
dessus, avec des r�les différents
-
Un utilisateur qui a des droits sur un objet donné, peut intervenir
sur tous les objets Folder descendants de celui-ci, et les autres
objets qu'ils contiennent
-
Ainsi, la maintenance du site peut-�tre déléguée
naturellement et facilement à plusieurs personnes
-
La notion de contexte : chaque objet possède un contexte
qui lui est propre. Le contexte d'un objet Folder est composé
de ses propriétés et des autres objets Zope qu'il contient.
Un
objet Zope hérite du contexte de son conteneur. L'objet
Folder
mgmt contenu dans l'objet Folder intranet a accès au contexte
de son conteneur...
|
II. Les classes Zope
-
Les propriétés des classes Zope sont en fait représentées
par une classe Zope particulière : la classe Property
-
Les classes Zope prédéfinies détiennent un certain
nombre de propriétés et de méthodes. La documentation
actuelle ne permet pas de les retrouver facilement ni de savoir comment
les utiliser au mieux...
-
Toute classe Zope possède une méthode particulière
manage_main
permettant d'accéder à la gestion des instances de la classe
(en fonction des droits d'accès bien entendu)
Les principales classes Zope
Folder |
Cette classe représente un répertoire, tel
que l'on peut le trouver sur un disque dur. Cet objet peut donc contenir
d'autres objets de toute sorte... |
DTML Method & DTML Document |
Ces classes sont quelque peut similaire puisqu'elles ont
la m�me structure. L'attribut __read__ de ces classes peut accepter
du code HTML et DTML.
L'objet DTML Document possède une petite différence. Il
peut �tre lié à des objets Property alors que
l'objet DTML Method ne peut pas...
L'objet DTML Method est utilisé pour agir dynamiquement sur les
objets Zope. Ainsi, manage_main est une méthode affichant le contexte
des objets Zope. Dans un navigateur, pour afficher le contexte de l'objet
mgmt, on tapera l'adresse "mgmt / manage_main" |
Image |
Cette classe représente une image |
File |
Cette classe représente un fichier de tout type |
User Folder, User & Role |
La classe User Folder peut �tre associée
à un répertoire. Il peut contenir une liste d'objets User,
soit une liste d'utilisateurs
Un objet User est défini par un nom de login, un mot de
passe et possède un ou plusieurs objet Role associés
Un objet Role possède une appellation et pour chaque objet
Security,
il peut avoir un certain nombre de permissions associées... |
Version |
Un objet Version permet de créer une image
de l'état de la plateforme Zope. On peut donc créer une version
et faire évoluer l'image sans modifier la plateforme. Il est ensuite
possible de prendre en compte la version gr�ce au gestionnaire
de versions
L'intér�t d'une version est de permettre à plusieurs
développeurs de travailler sur la m�me plateforme, de manière
sécurisée |
External Method |
Cette classe permet de faire référence à
une fonction écrite en Python et résidant sur le disque dur
du serveur hébergeant Zope. Ainsi, on peut l'utiliser directement
depuis la plateforme Zope. La fonction doit résider dans un script
python (fichier d'extension py), dans le dossier Extensions
de Zope |
ZSQL Method |
Cette classe permet d'écrire des requ�tes
SQL et de récupérer le résultat sous Zope. Une instance
de la classe doit �tre toujours associée à un objet
de type DB Connection. Le résultat de l'éxécution
d'une telle méthode est une liste ou chaque élément
est une ligne de la table résultat |
Mail Host |
Pour permettre à Zope d'envoyer des messages électroniques
- lorsqu'il trouve une balise dans un script DTML par exemple
- il faut lui spécifier les serveurs à utiliser. Cette classe
représente un serveur smtp |
ZCatalog & Z Search Interface |
Ces deux classes permettent d'effectuer des recherches
dans les objets Zope
La première permet d'indexer certains objets (il est possible
de spécifier le type des objets à indexer), ainsi que
leur propriétés associées
La deuxième permet de générer automatiquement une
page de saisie des paramètres de recherche, à partir d'objets
de type ZCatalog et de leur configuration. Elle génère aussi
une page de présentation des résultats de la recherche... |
Z Gadfly Conection |
Permet de créer un objet connexion à une
base de données relationnelle. La création de cet objet est
nécessaire pour pouvoir utiliser la classe Z SQL Method |
Classes Zope particulières
Property |
Certains objets peuvent �tre liés à
une ou plusieurs instances de cette classe. Un objet Property peut
�tre de tout type. Bien entendu, il est possible de supprimer celui-ci,
de lui attribuer une valeur et de la modifier |
Security |
Presque tous les objets ont un objet Security associé.
Il permet, à partir d'une liste de permissions d'accès (représentées
par un objet Zope particuliers), de sélectionner celles qui
requièrent une autorisation et de sélectionner quels types
d'utilisateurs ont la permission |
Proxy |
Parfois, un utilisateur essaie, par l'intermédiaire
d'un document ou une méthode DTML, d'accéder à une
ressource pour laquelle il n'est pas autorisé d'accès. Pour
les besoins de l'application, l'utilisateur doit pouvoir accéder
tout de m�me à la ressource mais uniquement par le biais de
ce document. Un objet Proxy permet d'attribuer la permission |
|
III. Environnement de développement
-
L'environnement de développement est une application Intranet.
Nous devons donc passé par un navigateur pour y accéder
-
L'accès à la plateforme se fait par identification (login
et mot de passe). Seul le superuser et les personnes enregistrées
ont le droit d'accès, avec néanmoins le r�le qui leur
a été attribué.
Les Views ou les pages de gestion des objets
-
Dans l'environnement Zope, nous accédons à ces pages de gestion
(ou méthodes) par l'intermédiaire de liens hypertextes
situés le plus souvent en haut de la frame de droite. Elles
n'apparaissent que si l'utilisateur a le droit d'y accéder...
-
Lorsque nous créons nos propres classes Zope (voir ZClass),
il est possible de surdéfinir les méthodes de gestion proposées
par Zope voire de créer nos propres pages de gestion
Contents |
Ce lien n'appara�t que pour les objets de type Folder.
Il présente les objets qu'il contient et les opérations qu'il
est possible d'effectuer (Rename, Cut, Copy, Delete, Export,...) |
Edit |
Ce lien appara�t pour les objets de type DTML
Method, DTML Document. Il permet d'editer le corps de la méthode
et d'effectuer certaines opérations... |
View |
Donne un aperçu de ce que le navigateur voit lorsqu'il
se situe au niveau courant |
Import / Export |
Permet d'importer ou d'exporter tout type d'objet Zope |
Undo |
Contient un historique des dernières opérations
effectuées et permet ainsi d'annuler une ou plusieurs transactions.
Il est possible ici, d'annuler une transaction ancienne sans annuler
les transactions qui ont eu lieu après... |
Find |
Permet de rechercher un objet donné sur la plateforme |
Upload |
Permet de remplacer le corps d'un objet DTML Method
ou DTML Document, par un fichier situé sur un disque dur.
Ce lien existe aussi pour les objets Image et Fichier |
Le Control Panel
-
Donne accès à des pages de gestion de la plateforme Zope
-
Depuis cette interface, il est possible de :
-
arr�ter le serveur ou de le redémarrer
-
accéder au système de gestion de la base de données
Zope pour la paramétrer
-
accéder au système de gestion des versions pour prendre en
compte une version ou l'annuler...
-
accéder au système de gestion des objets Product et
donc aux classes Zope personnelles
|
IV. Product & ZClass
-
Tous les objets Product sont stockés dans le "Control_Panel",
dans un dossier appelé "Products". Il n'est pas possible d'en rajouter
ailleurs...
Un objet Product se présente sous la forme d'un répertoire
pouvant contenir toute sorte d'objets Zope. Mais certains de ces objets
sont indispensables car ils ont une fonction particulière...
Premier cas d'utilisation d'un objet Product
:
duplication d'un objet existant
-
D'abord, cette classe peut �tre utilisée pour dupliquer un
objet Zope existant et dans un état particuliers. Par exemple, l'objet
Product
peut contenir un objet Folder avec des propriétés
particulières et contenant d'autres objets.
-
L'objet Product, en plus de ce dossier, contient deux méthodes
Designer
et Builder, permettant de saisir les caractéristiques du
nouveau dossier et l'autre le dupliquant.
Deuxième cas d'utilisation : création
d'une nouvelle classe Zope
-
L'autre cas d'utilisation consiste en la création d'une nouvelle
classe... L'objet Product contient alors la nouvelle classe (BNClass),
et le constructeur de la classe (BNClass_addForm, BNClass_add)...
-
La super-classe ZClass permet donc de créer une nouvelle
classe Zope, fille d'au moins une classe Zope existante...
-
A partir du nouvel objet ZClass (la nouvelle classe), il est possible
de spécifier ses attributs et ses méthodes...
Nouvelles Classes Zope rencontrés ici
Zope Factory |
Cette classe permet de donner accès aux fonctionnalités
du produit (constructeur de la classe ou script de duplication)
du produit, depuis les pages de gestion de Zope... |
PropertySheet |
Cette classe permet d'associer un ensemble de propriétés
à la nouvelle classe |
|
V. Le langage de développement
-
Un langage de script, basé sur le langage python, a été
créé pour l'écriture de pages dynamiques : le langage
DTML
-
Pour obtenir plus de détails ou de l'aide sur ce langage, vous trouverez
sur le site officiel www.zope.org des
pages consacrées à ce langage. Vous trouverez aussi un document
présenté au format PDF qui introduit ce langage mais la bible
du parfait développeur Zope est sans aucun doute le Zope Quick Reference...
Les balises de contr�le
-
Chaque balise peut avoir une ou plusieurs options
-
Elles vont permettre de manipuler les objets Zope
dtml-var |
Balise qui permet d'afficher comme du texte, le contenu
de n'importe quelle variable ou objet Zope |
dtml-if...dtml-elif...dtml-else.../dtml-if |
Contr�le de test |
dtml-with.../dtml-with |
Permet de considérer le contexte de l'objet Zope
spécifié dans la balise, et non l'objet courant |
dtml-call.../dtml-call |
Appel d'une fonction d'environement ou d'une méthode
d'un objet, sans attente de retour ou d'erreur |
dtml-let.../dtml-let |
Permet de créer et d'initialiser des variables |
dtml-in...dtml-else.../dtml-in |
Permet le parcours de liste |
dtml-raise.../dtml-raise |
Permet de spécifier l'envoie d'un message particuliers
lors d'une erreur |
dtml-try.../dtml-try |
Le script imbriqué dans cette balise générera
une erreur si l'interprétation échoue |
dtml-comment.../dtml-comment |
Les lignes de script imbriquées dans cette balise
ne seront pas interprétées, ce qui permet l'insertion de
commentaire dans les scripts DTML |
dtml-tree.../dtml-tree |
Cette balise est très intéressante puisqu'elle
permet de présenter joliment et surtout automatiquement, l'arborescence
d'objets Zope, objets pouvant contenir d'autres objets ou non... |
dtml-sendmail.../dtml-sendmail |
Permet d'envoyer un mail |
dtml-sqlvar...dtml-sqltest...dtml-sqlgroup |
sqlvar permet d'afficher les parametres des Z SQL Methods
en spécifiant leur type d'un point de vue sql. |
Les variables et fonctions d'environnement
-
Dans le langage DTML, nous avons accès à la plupart des variables
et fonctions d'environnement accessibles sous Python
-
On trouve les variables et fonctions d'environnement traditionnelles comme
les fonctions mathématiques, les variables REQUEST
RESPONSE...
|
|