Next: About this document ...
Up: Tutorial Zope
Previous: Donner des arguments à
  Contents
Les produits sont comme des plug-ins de Zope . Ils sont écrits en Python. On les place dans le
répertoire Products de zope, généralement :
/usr/lib/zope/lib/python/Products. On doit créer le fichier __init__.py qui
doit importer la classe produit. On ajoute à cela une fonction d'initilisation :
import MaClasse
def initialize(context):
"""
initialise MaClasse
"""
context.registerClass(
MonProduit.MaClasse,
permission=[...],
construcors = (MaClasse.manage_addMonProduit, MaClasse.manage_addMonProduitForm),
icon='MonIcone.png')
La classe MaClasse sera alors connue de Zope . Elle va apparaitre dans le menu
Select type to add. Pour cela, dans le module MonProduit,
on indique comment doit apparaître le produit :
from OFS import SimpleItem
class MaClasse(SimpleItem.Item)
"""
exemple MaClasse
"""
# type qui apparaitra dans le select
meta_type = 'minimal'
# onglets de gestion
manage_options = ({'label':'View', 'action':'index_html'},)
# initialisation de MaClasse
def __init__(self,id):
"a la creation d'un objet de MaClasse"
self.id = id
# vue de l'objet
def index_html(self):
"vue par defaut"
return '<html><body>Salut!</body></html>'
# administration
def manage_addMonProduit(self, id, RESPONSE=None):
"Ajoute un objet de MonProduit dans un folder"
self._setObject(id, MaClasse(id))
RESPONSE.redirect('index_html')
def manage_addMonProduitForm(self)
"formulaire pour obtenir l'id de l'instance"
return """<html><body>Id de l'instance ?<br>
<form name="form" action="manage_addMonProduit">
<input type="text" name="id"><br>
<input type="submit" value="creer">
</form></body></html>"""
Ici, MaClasse hérite de SimpleItem.Item. On ajoute aux options manage_options
le label 'View' qui appelle index_html, lequel affiche du texte html. On trouve les
deux méthodes qui vont sevir à la construction de l'objet : manage_addMonProduit
et manage_addMonProduitForm qui ont été déclarées dans
__init__.py. En conséquence, l'instance créée est une page html
définie par index_html(self). Toute autre méthode du nouvel objet est accessible
par son URL, par exemple : /MonId/MaMethode .
Benoît Rouits
2001-05-03