La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

F Filliettaz TECFA 02 20021. 2 1.Quest-ce que cest que ça ? 2.A quoi ça sert ? 3.Comment ça marche ? 4.Démo pratique de quelques aspects particuliers.

Présentations similaires


Présentation au sujet: "F Filliettaz TECFA 02 20021. 2 1.Quest-ce que cest que ça ? 2.A quoi ça sert ? 3.Comment ça marche ? 4.Démo pratique de quelques aspects particuliers."— Transcription de la présentation:

1 F Filliettaz TECFA 02 20021

2 2 1.Quest-ce que cest que ça ? 2.A quoi ça sert ? 3.Comment ça marche ? 4.Démo pratique de quelques aspects particuliers (portail)

3 F Filliettaz TECFA 02 20023 Z Object Publishing Environment Advanced web application server framework Open source: il est possible de comprendre en profondeur comment il fonctionne Orienté objet. Les éléments publiés sur le web ne sont pas des fichiers, mais des objetsobjets Sécurisé Multi-plate-forme: Windows, Unix, Mac 1. Quest-ce que ?

4 F Filliettaz TECFA 02 20024 Un objet est défini par – son état (ensemble des valeurs de ses attributs) – son comportement (ensemble des méthodes qui lui sont applicables). Il appartient à une classe (qui peut être dérivée d'une super- classe, etc) Les objets Zope les plus courants appartiennent aux classes Folder, DTML Document et DTML Method. Ils sont persistants, leur durée de vie dépasse celle de l'application (généralement on instancie un objet quand on en a besoin, et on le détruit quand on en a plus besoin). Un objet persistant se sauvegarde et se restaure lui-même. Le composant ZODB se charge de la persistance des objets. Les objets dans

5 F Filliettaz TECFA 02 20025 Zope architectureSite Building Objects ZServer ZServer HTTP requests, responses Channels and Threads, Buffering Zpublisher Zpublisher URL traversal, access control Argument and exception handling ZODBZODB (Zope Objects Data Base) Objects, transactions, undo, history, versions FRAMEWORKCOMPOSANTS Storages Undoable non-undoable remote File Berkeley ZEO Content Folder, File, Image, Document Template Template Page & Document Template Scripts Python Script, External Method Database Interface Adapter, SQL Method, Search Wizzard - - - - - ZClass Python based ProductsProducts

6 F Filliettaz TECFA 02 20026 ZServer ZServer Server web multi-thread (plusieurs utilisateurs peuvent se brancher en même temps). Supporte HTTP, FTP et PCGI (persistent CGI). En réalité, ZServer est un framwork et ZPublisher en plug-in. ZServer reçoit les requêtes venant du web, les "prétraite" (preprocessing) selon les standards CGI et appelle ZPublisher. Ensuite ZServer envoie la réponse de ZPublisher sur Internet.

7 F Filliettaz TECFA 02 20027 ZPublisher Zope met des objets sur le web. On appelle cela publier des objets. Une des caractéristiques uniques de Zope est sa manière d'atteindre les objets et d'appeler les méthodes simplement en remontant les URL. En plus de rendre les objets disponibles pour le protocole HTTP, Zope en permet l'accès aux protocoles FTP, WebDAV et XML-RPC Remote Procedure Call: XML pour l'encodage, HTTP pour le transfert). URL Traversal: processus par lequel Zope touve l'objet demandé par la requête. Le processus dépend de l'acquisition, il est donc sensible au contexte (il ne dépend pas uniquement de l'URL).

8 F Filliettaz TECFA 02 20028 ZODB Zope ne conserve pas les composants du site dans les fichiers du système d'exploitation, mais dans une base de données orientée objet. Ainsi chaque objet est implémenté par classe, ce qui rend possible de leur attribuer des propriétés et d'y définir des méthodes. La maintenance du site en est grandement facilitée. Mais la ZODB a un autre avantage essentiel: c'est une base de données transactionnelle, c'est-à-dire qu'une transaction (transfert de fichiers) qui échoue ne menace pas l'intégrité du contenu. Zope détecte si une transaction est incomplète, ou si elle interfère avec une autre transaction, et peut l'annuler (undo). Il existe deux types de transactions: transactions à court terme, utiles pour protéger les opération d'une simple requête, et les transactions à long terme, appelées versions, autorisent des développements concurrents d'un même fichier.

9 F Filliettaz TECFA 02 20029 ZEO Zope Enterprise Object: permet de faire tourner un site sur plusieurs ordinateurs: –Quand le site est très actif, un ordinateur peut se crasher. Les autres répondent aux requêtes. –On installe un ZEO serveur et plusieurs ZEO clients (même version de Zope, mêmes Products)

10 F Filliettaz TECFA 02 200210 Templates Document Template est le principal outil de composition de Zope. Il s'agit d'un modèle statique, qui contient des commandes pour ajouter du texte qui leur sera substitué. La syntaxe est semblable au HTML, mais elle permet d'inclure dans des pages HTML d'autres pages (idem SSI) ou objets. Ces commandes sont appelées DTML (Document Template Markup Language). Document Template contient des commandes pour: –l'inclusion de tous types d'objets –l'itération –le rendement conditionnel de texte (empêche l'affichage d'un texte ou en affiche un autre suivant les conditions)

11 F Filliettaz TECFA 02 200211 Templates –call/return : appelle un objet pour ses effets de bord (p.ex mettre à jour une propriété, envoyer un e-mail) ou pour contrôler ses valeurs retournées. –gestion des exceptions (erreurs) –présentation hiérarchique interactive des structures hiérarchisées

12 F Filliettaz TECFA 02 200212 Products Ces produits se trouvent dans le dossier webserver/lib/python/products. C'est là qu'il faut les installer. Le site de zope en propose plus de 400. S'ils sont convenablement installés, ils peuvent être ajoutés partout, en cliquant sur add. Les products sont extrèmement variés, il en existe dans tous les domaines, et rien n'empêche d'en programmer soi-même en Python.

13 F Filliettaz TECFA 02 200213 Possibilité dinterfaçage avec des systèmes externes, bases de données, systèmes RPC ou autres sites web. Possibilités infinies et très simples de faire croître un site. Les possibilités de Zope peuvent être largement étendues, grâce à la créativité de sa communauté. Avec un moteur de recherche relativement efficace

14 F Filliettaz TECFA 02 200214 1. Quest-ce que ? (suite) Interface basée sur le web: linterface de management de Zope souvre dans le navigateur Permet décrire des applications dans plusieurs langages de script: Python, Perl et le langage de Zope: DTML Gratuit Une communauté très active et qualifiée

15 F Filliettaz TECFA 02 200215 2. A quoi sert ? Permet de construire des sites web dynamiques Modulaires : –séparation claire entre contenu, logique et présentation, –composants paramétrables et configurables, –permettant une unité de style du site, –et une navigation uniforme, sensible au contexte, mise à jour automatiquement.

16 F Filliettaz TECFA 02 200216 2. A quoi sert ? Ce qui facilite la gestion du style d'un site, puisque chaque module inclu dans les pages se réfère à la même CSS, permet une navigation uniforme dans tout le site, une indexation automatique des pages, et l'utilisation d'un outil de recherche très utile dans un site d'une certaine importance. Offre une interaction évoluée et des possibilités de personnalisation pour chaque visiteur.

17 F Filliettaz TECFA 02 200217 3. Comment marche ? Installation Premiers contacts Lenvironnement de développement Lacquisition Le DTML par le menu

18 F Filliettaz TECFA 02 200218 3. Comment marche ? Installation Premiers contacts Lenvironnement de développement Lacquisition Le DTML par le menu

19 F Filliettaz TECFA 02 200219 Installation Télécharger Zope http://www.zope.org/Products/Zopehttp://www.zope.org/Products/Zope Sous Windows, exécuter setup.exe NT ou 2k: l'installer en tant que service (manuel) Pour entrer dans lenvironnement de développement, pointer le navigateur vers http://localhost:8080/manage A TECFA: http://tecfa.unige.ch:9080/managehttp://localhost:8080/managehttp://tecfa.unige.ch:9080/manage

20 F Filliettaz TECFA 02 200220 Installation Se connecter en utilisant nom et mot de passe créés lors de linstallation. Créer un répertoire qui contiendra les éléments de votre site. Y copier index_html, standard_html_header et standard_html_footer de la racine.

21 F Filliettaz TECFA 02 200221 Installation des composants Depuis la page http://www.zope.org/Products, télécharger le composant.http://www.zope.org/Products Le déziper Placer les dossiers dans le répertoire où vous avez installé Zope (par défaut WebServer), sous /lib/python/Products. Vérifier depuis le Control_panel de Zope, lien Product management, qu'il est bien installé. Si c'est le cas, il sera disponible dans le drop-down Select type to add.

22 F Filliettaz TECFA 02 200222

23 F Filliettaz TECFA 02 200223 Installation Précaution: faire régulièrement un back-up du fichier Data.fs, qui se trouve dans le dossier var.

24 F Filliettaz TECFA 02 200224 3. Comment marche ? Installation Premiers contacts Lenvironnement de développement Lacquisition Le DTML par le menu

25 F Filliettaz TECFA 02 200225 Premiers contacts Créer un utilisateur: cliquer sur le dossier add_user, puis sur le bouton Add une fois les champs renseignés Créer une page: le code HTML est contenu dans des objets. Il suffit dun créer un de type DTML_document LID est essentiel, il permettra à Zope de référencer lobjet. Le titre apparaîtra dans le document, appelé par la méthode title_or_id. Cliquer sur Add pour lajouter au dossier courant

26 F Filliettaz TECFA 02 200226 Entrer lURL http://localhost:8080/ # id_du_fichier # (p.ex...:8080/toto) pour voir laspect dun objet sommaire. Revenir à lenvironnement de management, et cliquer sur lobjet. On devrait voir ceci: This is the Document. Cest le code par défaut dun DTML_document.

27 F Filliettaz TECFA 02 200227 DTML Document / DTML Method Ces deux objets ont la même interface, et il est souvent difficile de savoir lequel utiliser. S'il s'agit de publier un contenu, utiliser DTML Document. S'il s'agit de manipuler ou d'appeler d'autres objets, utiliser DTML Method (presentation templates: définir des layouts séparément du contenu).

28 F Filliettaz TECFA 02 200228 Toutes les balises du DTML commencent par { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.fr/4/1576078/slides/slide_28.jpg", "name": "F Filliettaz TECFA 02 200228 Toutes les balises du DTML commencent par

29 F Filliettaz TECFA 02 200229 Linstruction permet dinclure des variables, le résultat de lappel dune fonction et des objets. Elle ne se ferme pas. Elle a des attributs: P.ex. missing Voir les attributs dans DTML Reference, Appendice A de "Zope Book"

30 F Filliettaz TECFA 02 200230 Ecrire en HTML Il est évidemment possible d'écrire des pages HTML sans profiter du DTML. Zope jouera alors le rôle d'un serveur web statique. Il est aussi possible d'importer des pages HTML pour les convertir au format DTML. Dans le pop-up de Add, sélectionner Add DTML Document, dont le dernier élément est Browse. Choisir le fichier texte, lui donner un id, et cliquer Add.

31 F Filliettaz TECFA 02 200231 Importer des images Depuis la racine du site, ajouter un objet Image Renseignez id et title Avec Parcourir chercher limage Cliquer sur Add. Lobjet apparaît désormais à la racine du site, et peut être utilisé dans toutes les pages avec la balise HTML (p.ex ).

32 F Filliettaz TECFA 02 200232 DTML sommaire petit cas pratique Vous avez installé Zope pour permettre à vos collègues de publier des textes sur le web. Ils ignorent tout du HTML. Créez un dossier utilisateurs et intitulez- le comme il vous plaît. Ne sélectionnez aucune option. Puis dans ce dossier, créez un dossier par collègue (au moins 3 pour la beauté de l'exercice), sans cocher d'option.

33 F Filliettaz TECFA 02 200233 DTML sommaire (suite) Dans le dossier utilisateurs, créer une DTML Method (et non un DTML Document) appelé (id) index_html, et contenant le code suivant: >

34 F Filliettaz TECFA 02 200234 DTML sommaire (suite) Pour améliorer l'apparence du site, éditer la méthode index_html du dossier utilisateurs et introduire le code suivant:

35 F Filliettaz TECFA 02 200235 DTML sommaire (suite) Toujours dans le dossier utilisateurs créer une DTML Method appelée FolderList contenant le code suivant: ">Retour ">

36 F Filliettaz TECFA 02 200236 DTML sommaire (suite) et une DTML Method appelée DocumentList contenant le code suivant: Puis créer un DTML Document dans le dossier utilisateurs appelé presentation contenant un texte comme celui-ci: Créez vos pages en insérant des "DTML Documents" et des "Folder" dans votre dossier personnel.

37 F Filliettaz TECFA 02 200237 DTML sommaire (suite) Enfin, permettez à chaque utilisateur de gérer ses propres pages. Pour chaque utilisateur, se placer dans le dossier /acl_users et ajouter un utilisateur doté des propriétés suivantes: id identifiant ou nom de l'utilisateur Password mot de passe assigné à cet utilisateur Domains laisser vide Roles ne sélectionner aucun rôle

38 F Filliettaz TECFA 02 200238 DTML sommaire (fin) Puis dans le dossier de chaque utilisateur, cliquer sur Security et cliquer sur le lien Local role; sélectionner le nom de l'utilisateur dans la liste de gauche et les rôles Manager et Owner dans la liste de droite, puis cliquer sur Add. Maintenant chaque utilisateur peut utiliser l'URL http://localhost:8080/utilisateurs/sonNom/manage pour créer et modifier ses propres pages. Il n'a accès qu'à sa partie personnelle, et ne peut pas modifier votre travail. Toutes les pages peuvent être vues par tout le monde. http://localhost:8080/utilisateurs/sonNom/manage

39 F Filliettaz TECFA 02 200239 3. Comment marche ? Installation Premiers contacts Lenvironnement de développement Lacquisition Le DTML par le menu

40 F Filliettaz TECFA 02 200240 L'environnement de développement Manipulations élémentaires Modifier un objet: cliquer sur son nom. Ajouter un objet: dans un dossier: cliquer sur son lien dans le cadre de gauche, puis sélectionner dans la liste déroulant "Select object to add" le type d'objet à ajouter. Lui donner ensuite un id (deux objets ne peuvent pas avoir le même id dans un même dossier) et un nom (pas obligatoire). Cliquer sur Add. Détruire un objet: sur l'onglet "Contents" du dossier parent cocher la case de l'objet, puis sur "Delete".

41 F Filliettaz TECFA 02 200241 L'environnement de développement Manipulations élémentaires Renommer un objet: pour changer son identifiant sans en modifier le titre, ses propriétés en général, le contenu: le sélectionner, puis cliquer sur le bouton Rename. Changer le titre d'un objet: aller dans l'onglet "Properties" de cet objet. Copier/coller

42 F Filliettaz TECFA 02 200242 L'environnement de développement Manipulations élémentaires Editer le contenu d'un objet: cliquer deux fois sur le nom de l'objet, ou aller à l'ongler "Edit". Toujours cliquer sur "Save Changes" pour que les changements deviennent effectifs Editer les propriétés d'un objet: aller à l'onglet "Properties". Attention: les propriétés sont des attributs au sens de la programmation objet; pour un dossier, elles ne peuvent avoir le même nom qu'un objet contenu dans ce dossier,

43 F Filliettaz TECFA 02 200243 L'environnement de développement Manipulations élémentaires et il n'est pas possible dans ce dossier de créer un objet du même nom qu'un propriété existante. Les propriétés sont gérées automatiquement par Zope : en ajoutant des propriétés à un objet, on autorise les utilisateurs à accéder à ces propriétés et/ou à les modifier, s'ils ont les permissions requises. Les types de propriétés correspondent dans la pratique aux types de champs des formulaires HTML.

44 F Filliettaz TECFA 02 200244 L'environnement de développement Manipulations élémentaires Annulation: undo Zope intègre un mécanisme d'annulation très efficace. Les objets de Zope sont stockés dans une base de données, dont l'architecture est conçue de manière à garder un historique de toute modification qui y est apportée. Cette faculté d'annulation est gérée dossier par dossier, ce qui permet d'avoir toujours une vision des actions relatives au dossier courant.

45 F Filliettaz TECFA 02 200245 L'environnement de développement Manipulations élémentaires Version: permet de modifier une partie du site sans que ces modifications soient accessibles aux autres utilisateurs. Permet de tester les changements avant de les rendre publiques. Il est possible de travailler à plusieurs sur une version. Dès qu'un objet a été modifié à partir d'une version, il est vérouillé en modification hors de cette version, et ne peut être modifié que dans cette version. Aucun chevauchement n'est possible avec d'autres modifications.

46 F Filliettaz TECFA 02 200246 L'environnement de développement Espace de noms Espace de noms Zope transforme une URL en appel d'une méthode d'un objet ZODB. Il transmet son namespace à la méthode qui permettra à l'objet de se rendre. Il s'agit d'une liste de variables qui permettent à l'objet d'interagir avec son environnement. Il peut contenir: –les attributs et les méthodes définis par l'objet lui-même –les attributs et les méthodes de ses conteneurs récupérés par l'acquisition

47 F Filliettaz TECFA 02 200247 L'environnement de développement Espace de noms –une variable spéciale, REQUEST, contenant des informations spécifiques à la requête HTTP –un objet RESPONSE permettant de renvoyer des en-têtes HTTP ou des codes de réponse au navigateur. –les attributs et méthodes définis au sein de Zope et accessibles par tous les objets. La variable REQUEST contient les données de la requête HTTP. C'est la variable la plus utilisée et le meilleur moyen de récupérer des entrées de l'utilisateur, pour les traiter dynamiquement.

48 F Filliettaz TECFA 02 200248 L'environnement de développement Espace de noms Par example: Texte : Sélection :

49 F Filliettaz TECFA 02 200249 L'environnement de développement Espace de noms La validation du formulaire provoque un appel de l'URL formulaire. Et donc de l'objet en question. Dans l'objet formulaire, suivant les données entrées par l'utilisateur, les expressions python suivantes peuvent être vraies : REQUEST.text == "Mon texte" REQUEST.select == "3"

50 F Filliettaz TECFA 02 200250 L'environnement de développement Espace de noms Par exemple, pour récupérer les valeurs obtenues dans le formulaire précédent, écrire le DTML Document suivant, auquel vous donnez l'id formulaire:

51 F Filliettaz TECFA 02 200251 L'environnement de développement Espace de noms Pour voir le contenu de REQUEST, écrire un DTML Document avec ce simple contenu:

52 F Filliettaz TECFA 02 200252 L'environnement de développement Utilisateurs, rôles et permissions Les droits ne sont pas réglés au niveau des utilisateurs, mais à travers des rôles. A chaque utilisateur est affecté un ou plusieurs rôles. Trois rôles particuliers: –Administrateur (Manager) dispose de tous les droits –Propriétaire d'un objet (Owner). Permet de déléguer l'administration de certains objets à leur propriétaire. Il n'y a qu'un seul propriétaire par objet. –Anonyme (anonymus user), correspondant à un utilisateur pas encore identifié.

53 F Filliettaz TECFA 02 200253 L'environnement de développement Utilisateurs, rôles et permissions D'autres rôles peuvent être créés. –Lors de la création ou de la modification des utilisateurs, le responsable peut affecter les rôles qu'il souhaite à chacun d'eux. –La création de nouveaux rôles se fait dans l'onglet Security des objets concernés: local roles –Ce rôle apparaît dans tous les sous-objets s'il s'agit d'un objet conteneur. Il n'est pas possible de retirer ce rôle dans les sous-objets.

54 F Filliettaz TECFA 02 200254 L'environnement de développement Utilisateurs, rôles et permissions –Il est possible et très pratique de créer des rôles locaux pour des objets qui ne sont pas des conteneurs (DTML Document en particulier) Modification des permissions Dans l'onglet Security de l'objet.

55 F Filliettaz TECFA 02 200255 3. Comment marche ? Installation Premiers contacts Lenvironnement de développement Lacquisition Le DTML par le menu

56 F Filliettaz TECFA 02 200256 Acquisition L'acquisition est la technologie qui permet le passage des comportements et contenus dynamiques d'un objet Zope à un autre. Le concept de l'acquisition est simple: : 1.Des objets sont placés à l'intérieur d'autres objets. 2.Ces objets acquièrent le contenu et les comportements de leur conteneur (idem pour ce conteneur etc.)..

57 F Filliettaz TECFA 02 200257 Acquisition La puissance de l'acquisition réside dans ce partage automatique entre contenu et conteneur. En créant Documents et Folders on ne construit pas simplement un site, mais on construit une structure d'information.

58 F Filliettaz TECFA 02 200258 Acquisition En plaçant un Document dans un Folder, on crée un petit outil de partage d'information entre le Document et le Folder. Dans Zope, un Document p.ex. a accès au contenu et au services de tous ses conteneurs. Si un des Folder peut envoyer des mails, le Document le pourra aussi sans que cela apparaisse dans son code..

59 F Filliettaz TECFA 02 200259 Acquisition Ainsi les objets acquièrent et fournissent des services. L'acquisition va dans les deux sens. La réutilisation des services est simple, puisqu'il n'y a rien à faire de spécial pour qu'ils soient disponibles pour d'autres objets. Un Document dans un Folder acquière les comportements du Folder. Quid pour un Document qui est au centre d'une "poupée russe" faite de différents Folder?. De qui va- t-il acquérir les comportements?

60 F Filliettaz TECFA 02 200260 Acquisition L'acquisition agit sur toute la hiérarchie. Si nous avons un Document au centre de trois Folder - /Utilisateurs/Nooteboom/Romans/Rituels, le Document Rituels acquière les comportements du Folder Romans, qui acquière les comportements du Folder Nooteboom, et ainsi de suite. Chaque objet acquière les comportements d'un objet, ou d'une collection d'objets. Ils peuvent être nombreux, ce qui signifie qu'il bénéficiera d'une panoplie très adaptée.

61 F Filliettaz TECFA 02 200261 Acquisition Comportements dynamiques L'acquisition permet que les comportements soient distribués partout dans Zope. Quand on ajoute un objet, il n'y a pas besoin de spécifier dans son code tous ses comportements, mais seulement ceux qui lui sont propres. Ce qui signifie qu'il est possible de changer le comportement d'un objet en le changeant de place dans la hiérarchie.

62 F Filliettaz TECFA 02 200262 Acquisition Exercice: construire une hiérarchie d'au- moins 3 niveaux (Folders imbriqués) contenant chacun quelques documents. Ecrire un index_html unique, qui dès qu'on pointe vers un Folder en affichera le contenu.

63 F Filliettaz TECFA 02 200263 3. Comment marche ? Installation Premiers contacts Lenvironnement de développement Lacquisition Le DTML par le menu

64 F Filliettaz TECFA 02 200264 DTML Langage à balise pour modèle de document qui peut: –Afficher le contenu d'objets Zope –Exécuter des méthodes sur des objet Zope –Afficher des attributs d'objets –Effectuer des tests sur ces variables –Parcourir des boucles à partir de ces variables –Gérer les exceptions

65 F Filliettaz TECFA 02 200265 DTML Le code DTML est interprété par –DTML Document –DTML Method Le DTML est interprété dans le corps du document, jamais dans ses propriétés (du code écrit dans la propriété title ne sera pas interprété) Tous les traitements sont effectués sur le serveur.

66 F Filliettaz TECFA 02 200266 Balises du DTML Balises ouvrantesBalises fermantes

67 F Filliettaz TECFA 02 200267 Balises du DTML Balises ouvrantesBalises fermantes

68 F Filliettaz TECFA 02 200268 Balises du DTML Balises ouvrantesBalises fermantes { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.fr/4/1576078/slides/slide_68.jpg", "name": "F Filliettaz TECFA 02 200268 Balises du DTML Balises ouvrantesBalises fermantes

69 F Filliettaz TECFA 02 200269 Attributs name et expr de { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.fr/4/1576078/slides/slide_69.jpg", "name": "F Filliettaz TECFA 02 200269 Attributs name et expr de

70 F Filliettaz TECFA 02 200270 Attributs name et expr de { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.fr/4/1576078/slides/slide_70.jpg", "name": "F Filliettaz TECFA 02 200270 Attributs name et expr de

71 F Filliettaz TECFA 02 200271 Si l'attribut name fait référence à une propriété ou un document inexistant, sa valeur est considérée comme fausse. C'est la façon la plus pratique de vérifier l'existence d'un document ou d'une propriété. Dans le cas de expr, si un attribut auquel il fait référence n'existe pas, il y a erreur.

72 F Filliettaz TECFA 02 200272 Pour appeler une méthode ou un document sans qu'il se "rende" (pour effectuer un traitement sur le serveur p.ex), on utilise, qui n'accepte que expr et var comme attributs. Pour obtenir en retour une valeur précise, on utilise, qui accepte les attributs expr et var. Attention à la syntaxe des chaînes! Il est interdit d'utiliser des guillemets dans les expressions. Utiliser '…'.

73 F Filliettaz TECFA 02 200273 peut retourner n'importe quel type de données. Pour renvoyer l'objet magasin :

74 F Filliettaz TECFA 02 200274 Permet l'itération dans un Folder, dans les propriétés d'un objet etc.. Le contenu d'un bloc entre les tags in est une sorte de template qui s'applique une fois à chaque item d'une séquence.

75 F Filliettaz TECFA 02 200275 Pour parcourir des listes. Exemple: dans un Folder magasin créer un DTML Document vide appelé catalogue. Lui affecter une propriété articles de type lines. Entrer 5 ou 6 articles. Dans le corps du DTML Document entrer ce code:

76 F Filliettaz TECFA 02 200276 Cliquer sur l'onglet View. accepte les attributs name et expr. Elle renvoie une erreur si la propriété n'existe pas. Pour vérifier qu'il y a un ou des article(s) il suffit d'écrire. Aucun article

77 F Filliettaz TECFA 02 200277 Il faut stocker les articles dans des objets Zope. –Créer un dossier articles dans le dossier courant –Puis 1 DTML Document par article. Leur donner un ID du type Art_01 etc..Supprimer le contenu par défaut. –Dans la propriété title indiquer le nom de l'article.

78 F Filliettaz TECFA 02 200278 Les objets Folder possèdent une méthode objectsIds () qui renvoie la liste des objets qu'ils contiennent (sous forme d'une liste de chaînes) Il est possible de spécifier quels objets sont recherchés:

79 F Filliettaz TECFA 02 200279 Les objets Folder possèdent une méthode objectsValues () qui renvoie la liste des objets qu'ils contiennent (sous forme d'une liste): Pour obtenir aussi la référence: %nbsp;

80 F Filliettaz TECFA 02 200280 Pour obtenir en plus le contenu des objets (description qu'il faut entrer dans le corps du DTML Document de chaque article): %nbsp; %nbsp;

81 F Filliettaz TECFA 02 200281 Parcourir des objets pour obtenir leur contenu? Dans le dossier magasin créer une DTML Method appelée index_html et y inclure ce code:

82 F Filliettaz TECFA 02 200282 Se placer dans le dossier articles et cliquer sur l'onglet View. Tous les articles apparaîssent les uns à la suite des autres, grâce à l'acquisition. Pour détecter le début ou la fin d'une séquence: sequence-start et sequence-end

83 F Filliettaz TECFA 02 200283 Article Aucun article

84 F Filliettaz TECFA 02 200284 Pour obtenir l'index de l'élément, utiliser la variable sequence-index – : Pour parcourir des dictionnaires (liste de valeurs associées à des clefs, comme {'ART_01':'Avion'. 'ART_02' : 'Bateau'} ) on utilise sequence-key pour obtenir le premier indice, et sequence-item pour obtenir le second.

85 F Filliettaz TECFA 02 200285 Référence Article (ou ) Aucun article

86 F Filliettaz TECFA 02 200286 Exercice: ajouter quelques DTML Documents d'articles, en ajoutant à certains (pas à tous) une propriété prix de type integer, et ajouter dans le document catalogue une colonne au tableau mentionnant le prix ou affichant "N/A" si aucun prix n'a été défini.

87 F Filliettaz TECFA 02 200287 sort Pour trier les objets par ordre de prix croissant: Par ordre de prix décroissant :

88 F Filliettaz TECFA 02 200288 Permet de facilement construire dynamiquement un arbre en HTML pour décrire une structure hiérarchique.

89 F Filliettaz TECFA 02 200289 Page Template Outil de génération de pages web Pour que designers et programmeurs puissent travailler facilement ensemble Le designer peut faire évoluer le design sans se préoccuper du contenu des pages Page Template génère des pages HTML ou XML, pas des pages dynamiques (apanage de DTML).

90 F Filliettaz TECFA 02 200290 Page Template création Depuis le add drop-down choisir Page Template, lui donner un id. Pour les détails, voir Zope Book p.67ss et 135ss. Un excellent article décrit en détail le processus:article

91 F Filliettaz TECFA 02 200291 CMF un portail avec ZOPE Exemple: Zopera.org, Liens: –http://www.zopera.org/Members/zopera/doc/04_zope_cmf (CMF, CMF francisés, liens cassés…)http://www.zopera.org/Members/zopera/doc/04_zope_cmf –Création d'un skin : http://www.zopera.org/Members/sdebruyne/sdebruyne/Crationdun Skin?portal_skin=Printable http://www.zopera.org/Members/sdebruyne/sdebruyne/Crationdun Skin?portal_skin=Printable –Docs : http://cmf.zope.org/dochttp://cmf.zope.org/doc

92 F Filliettaz TECFA 02 200292 CMF un portail avec ZOPE Dans un nouveau Folder (il est ainsi possible d'avoir plusieurs configurations différentes): Ajouter l'objet CMFSite, qui permet d'administrer le site. Remplir les champs Il y a 4 pages: –Home Page –Member Page –News Page –Search Page

93 F Filliettaz TECFA 02 200293 CMF un portail avec ZOPE Chaque membre peut changer, pour lui, le look de l'espace qu'il peut atteindre. Le site possède un skin par défaut, et les différents skin qu'il met à disposition. Pour changer de skin: –Dans CMFSite/portal_skin -> onglet "content" –Ajouter un nouveau Folder (p.ex MonSkin) –Pour changer les couleurs p.ex aller dans portal_skin/Nouvelle/stylesheet_properties –Sous "Customize" sélectionner p.ex MonSkin et cliquer sur Customize –"Customizer" votre skin.

94 F Filliettaz TECFA 02 200294 CMF un portail avec ZOPE Pour mettre ce nouveau skin à disposition des membres, aller à l'ongler Porperties de portal_skin et ajouter : –Name: My Skin –Layers: MySkin, custom, nouvelle, content, generic, control Le skin est maintenant ajouté au Préférences.

95 F Filliettaz TECFA 02 200295 CMF un portail avec ZOPE Pour des changements plus consistants, il va falloir changer le Layout, c'est-à-dire intervenir dans le code des DTML Methods, le plus difficile étant de trouver la bonne. Les Folders de portal_skin contiennent toutes les méthodes nécessaires pour les pages CMF. Elles sont sous portal_skin/ onglet Content/generic. Pour se faire la main, changer le contenu de standard_html_header, index_html et stabdard_html_footer. Le site entier changera.

96 F Filliettaz TECFA 02 200296 CMF un portail avec ZOPE c

97 F Filliettaz TECFA 02 200297 CMF un portail avec ZOPE Pour des changements plus consistants, il va falloir changer le Layout, c'est-à-dire intervenir dans le code des DTML Methods, le plus difficile étant de trouver la bonne. Les Folders de portal_skin contiennent toutes les méthodes nécessaires pour les pages CMF. Elles sont sous portal_skin/ onglet Content/generic. Pour se faire la main, changer le contenu de standard_html_header, index_html et stabdard_html_footer. Le site entier changera.

98 F Filliettaz TECFA 02 200298 CMF un portail avec ZOPE Pour des changements plus consistants, il va falloir changer le Layout, c'est-à-dire intervenir dans le code des DTML Methods, le plus difficile étant de trouver la bonne. Les Folders de portal_skin contiennent toutes les méthodes nécessaires pour les pages CMF. Elles sont sous portal_skin/ onglet Content/generic. Pour se faire la main, changer le contenu de standard_html_header, index_html et stabdard_html_footer. Le site entier changera.

99 F Filliettaz TECFA 02 200299 Ressources Liens –Le livre Zope : http://www.zope.org/Members/michel/ZB http://www.zope.org/Members/michel/ZB –CMF : http://cmf.zope.org/doc/introduction.txt http://cmf.zope.org/doc/introduction.txt Sites –http://www.zope.org/http://www.zope.org/ –http://cmf.zope.org/http://cmf.zope.org/ –http://www.zopera.org/http://www.zopera.org/

100 F Filliettaz TECFA 02 2002100 Ressources Autres liens intéressants: –E-books : http://www.beehive.de/zopehttp://www.beehive.de/zope


Télécharger ppt "F Filliettaz TECFA 02 20021. 2 1.Quest-ce que cest que ça ? 2.A quoi ça sert ? 3.Comment ça marche ? 4.Démo pratique de quelques aspects particuliers."

Présentations similaires


Annonces Google