1 / 91

Qu’est-ce que c’est que ça ? A quoi ça sert ? Comment ça marche ?

Qu’est-ce que c’est que ça ? A quoi ça sert ? Comment ça marche ? Démo pratique de quelques aspects particuliers (portail). 1. Qu’est-ce que ?. Z Object Publishing Environment Advanced web application server framework

feo
Download Presentation

Qu’est-ce que c’est que ça ? A quoi ça sert ? Comment ça marche ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. F Filliettaz TECFA 02 2002

  2. Qu’est-ce que c’est que ça ? • A quoi ça sert ? • Comment ça marche ? • Démo pratique de quelques aspects particuliers (portail) F Filliettaz TECFA 02 2002

  3. 1. Qu’est-ce que ? • 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 objets • Sécurisé • Multi-plate-forme: Windows, Unix, Mac F Filliettaz TECFA 02 2002

  4. Avec un moteur de recherche relativement efficace • Possibilité d’interfaç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é. F Filliettaz TECFA 02 2002

  5. 1. Qu’est-ce que ? (suite) • Interface basée sur le web: l’interface de management de Zope s’ouvre dans le navigateur • Permet d’écrire des applications dans plusieurslangages de script: Python, Perl et le langage de Zope: DTML • Gratuit • Une communauté très active et qualifiée F Filliettaz TECFA 02 2002

  6. 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. F Filliettaz TECFA 02 2002

  7. 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. F Filliettaz TECFA 02 2002

  8. 3. Comment marche ? • Installation • Premiers contacts • L’environnement de développement • L’acquisition • Le DTML par le menu F Filliettaz TECFA 02 2002

  9. 3. Comment marche ? • Installation • Premiers contacts • L’environnement de développement • L’acquisition • Le DTML par le menu F Filliettaz TECFA 02 2002

  10. Installation • Télécharger Zope http://www.zope.org/Products/Zope • Sous Windows, exécuter setup.exe • NT ou 2k: l'installer en tant que service (manuel) • Pour entrer dans l’environnement de développement, pointer le navigateur vershttp://localhost:8080/manageA TECFA: http://tecfa.unige.ch:9080/manage F Filliettaz TECFA 02 2002

  11. Installation • Se connecter en utilisant nom et mot de passe créés lors de l’installation. • 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. F Filliettaz TECFA 02 2002

  12. Installation des composants • Depuis la page http://www.zope.org/Products, télécharger le composant. • 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 . F Filliettaz TECFA 02 2002

  13. F Filliettaz TECFA 02 2002

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

  15. 3. Comment marche ? • Installation • Premiers contacts • L’environnement de développement • L’acquisition • Le DTML par le menu F Filliettaz TECFA 02 2002

  16. 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 d’un créer un de type DTML_document • L’ID est essentiel, il permettra à Zope de référencer l’objet. Le titre apparaîtra dans le document, appelé par la méthode title_or_id. • Cliquer sur Add pour l’ajouter au dossier courant F Filliettaz TECFA 02 2002

  17. Entrer l’URL http://localhost:8080/ # id_du_fichier # (p.ex. ..:8080/toto) pour voir l’aspect d’un objet sommaire. • Revenir à l’environnement de management, et cliquer sur l’objet. On devrait voir ceci:<dtml-var standard_html_header><h2><dtml-var title_or_id></h2><p>This is the <dtml-var id> Document.</p><dtml-var standard_html_footer>C’est le code par défaut d’un DTML_document. F Filliettaz TECFA 02 2002

  18. 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). F Filliettaz TECFA 02 2002

  19. <dtml-var > • Toutes les balises du DTML commencent par <dtml-. • <dtml-var permet d’insérer une variable. • id est le contenu de l’identifiant de l’objet • title_or_id est une méthode qui renvoie le titre de l’objet s’il existe, sinon son id • standard_html_header et standard_html_footer sont des objets qui seront inclus dans l’objet appelant. F Filliettaz TECFA 02 2002

  20. <dtml-var > • L’instruction <dtml-var>permet d’inclure des variables, le résultat de l’appel d’une fonction et des objets. Elle ne se ferme pas. • Elle a des attributs: P.ex. missing<dtml-var truc missing="il n'existe pas , ce truc"> • Voir les attributs dans DTML Reference, Appendice A de "Zope Book" F Filliettaz TECFA 02 2002

  21. 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. F Filliettaz TECFA 02 2002

  22. Importer des images • Depuis la racine du site, ajouter un objet Image • Renseignez id et title • Avec Parcourir chercher l’image • Cliquer sur Add. L’objet apparaît désormais à la racine du site, et peut être utilisé dans toutes les pages avec la balise HTML <IMG SRC="id_de_image" > (p.ex <IMG SRC=" image " >). F Filliettaz TECFA 02 2002

  23. DTML sommairepetit 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. F Filliettaz TECFA 02 2002

  24. 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:<dtml-var standard_html_header><dtml-in "objectValues(['Folder'])"> <A HREF=<dtml-var id>><dtml-var title></A><BR></dtml_in> <dtml-var standard_html_footer> F Filliettaz TECFA 02 2002

  25. DTML sommaire (suite) • Pour améliorer l'apparence du site, éditer la méthode index_html du dossier utilisateurs et introduire le code suivant:<dtml-var standard_html_header><TABLE><TR><TD WIDTH="30%"> <dtml-var DocumentList></TD></TR></TABLE><dtml-var standard_html_footer> F Filliettaz TECFA 02 2002

  26. DTML sommaire (suite) • Toujours dans le dossier utilisateurs créer une DTML Method appelée FolderList contenant le code suivant:<P><A HREF="<dtml-var "PARENTS[1].absolute_url()">">Retour</A><BR></P><dtml-in "objectValues(['Folder'])"> <A HREF="<dtml-var id>"><dtml-var title></A><BR></dtml-in> F Filliettaz TECFA 02 2002

  27. DTML sommaire (suite) • et une DTML Method appelée DocumentList contenant le code suivant:<dtml-in "objectValues(['DTML Document'])"> <H1><dtml-var title_or_id></H1><dtml-var "_['sequence-item']"></dtml-in> • 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. F Filliettaz TECFA 02 2002

  28. 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'utilisateurPassword mot de passe assigné à cet utilisateurDomains laisser videRoles ne sélectionner aucun rôle F Filliettaz TECFA 02 2002

  29. 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/managepour créer et modifier ses propres pages. Il n'a accès qu'à sa partie personnelle, et ne peut pas modifier votre travail. Toutesles pages peuvent être vues par tout le monde. F Filliettaz TECFA 02 2002

  30. 3. Comment marche ? • Installation • Premiers contacts • L’environnement de développement • L’acquisition • Le DTML par le menu F Filliettaz TECFA 02 2002

  31. L'environnement de développementManipulations é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". F Filliettaz TECFA 02 2002

  32. L'environnement de développementManipulations é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 F Filliettaz TECFA 02 2002

  33. L'environnement de développementManipulations é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, F Filliettaz TECFA 02 2002

  34. L'environnement de développementManipulations é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. F Filliettaz TECFA 02 2002

  35. L'environnement de développementManipulations élémentaires • Annulation: undoZope 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. F Filliettaz TECFA 02 2002

  36. L'environnement de développementManipulations é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. F Filliettaz TECFA 02 2002

  37. L'environnement de développementEspace de noms • Espace de nomsZope 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 F Filliettaz TECFA 02 2002

  38. L'environnement de développementEspace 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. F Filliettaz TECFA 02 2002

  39. L'environnement de développementEspace de noms • Par example:<FORM ACTION="fomulaire"><TABLE> <TR> <TH>Texte :</TH> <TD><INPUT TYPE="text" NAME="texte"></TD> </TR> <TR> <TH>Sélection :</TH><TD> <INPUT TYPE="checkbox" NAME="select" VALUE="1"> <BR><INPUT TYPE="checkbox" NAME="select" VALUE="2"> <BR><INPUT TYPE="checkbox" NAME="select" VALUE="3"> </TD></TR> <TABLE> <INPUT TYPE="submit" VALUE="Test"></FORM> F Filliettaz TECFA 02 2002

  40. L'environnement de développementEspace 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" F Filliettaz TECFA 02 2002

  41. L'environnement de développementEspace 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:<dtml-var standard_html_header> <dtml-var expr="_.int(REQUEST.select) + 5"><BR><dtml-var expr="REQUEST.texte"> <dtml-var standard_html_footer> F Filliettaz TECFA 02 2002

  42. L'environnement de développementEspace de noms • Pour voir le contenu de REQUEST, écrire un DTML Document avec ce simple contenu:<dtml-var standard_html_header> <dtml-var REQUEST> <dtml-var standard_html_footer> F Filliettaz TECFA 02 2002

  43. L'environnement de développementUtilisateurs, 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é. F Filliettaz TECFA 02 2002

  44. L'environnement de développementUtilisateurs, 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. F Filliettaz TECFA 02 2002

  45. L'environnement de développementUtilisateurs, 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 permissionsDans l'onglet Security de l'objet. F Filliettaz TECFA 02 2002

  46. 3. Comment marche ? • Installation • Premiers contacts • L’environnement de développement • L’acquisition • Le DTML par le menu F Filliettaz TECFA 02 2002

  47. 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: : • Des objets sont placés à l'intérieur d'autres objets. • Ces objets acquièrent le contenu et les comportements de leur conteneur (idem pour ce conteneur etc.).. F Filliettaz TECFA 02 2002

  48. 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. F Filliettaz TECFA 02 2002

  49. 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.. F Filliettaz TECFA 02 2002

  50. 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 dedifférents Folder?. De qui va-t-il acquérir les comportements? F Filliettaz TECFA 02 2002

More Related