PLONE FORMATION DE BASE Auteur: Aurélie Cambourian [email protected] FORMATION DE BASE À PLONE – p. 1 Plan de la formation Premier jour : MATIN -> CE QU’IL FAUT SAVOIR SUR ZOPE, PYTHON, CMF ET PLONE APRES-MIDI -> L’OBJET PLONE SITE Seconde journée : MATIN -> LES PRODUITS EXISTANTS ET LEUR PERTINENCE APRES-MIDI -> LE LANGAGE DE TEMPLATE et LE WORKFLOW Troisième jour : MATIN -> PETIT POINT SUR L’INDEXATION - JE CREE MON SITE (1/2) APRES-MIDI -> JE CREE MON SITE (2/2) ECHANGES FORMATION DE BASE À PLONE – p. 2 Premier Jour MATIN -> CE QU’IL FAUT SAVOIR SUR ZOPE, PYTHON, CMF ET PLONE APRES-MIDI -> L’OBJET PLONE SITE FORMATION DE BASE À PLONE – p. 3 Jour 1 Plan 1/2 Ce qu’il faut savoir sur Zope, Python, CMF et Plone Ce qu’il faut savoir sur Zope/Python/CMF Descriptions Installation et Optimisation en vue d’utiliser Plone Ce qu’il faut savoir sur Plone Descriptions Installation optimisée Connaître Plone En tant qu’utilisateur, reviewer et manager Description, Manipulation et Identification des objets (langage) FORMATION DE BASE À PLONE – p. 4 Jour 1 Plan 2/2 Description, connaissance de l’objet Plone Site Où sont les objets, le rôle de chacun et leur manipulation individuelle et interactions Les différents types d’objets Le classement de ces objets dans l’objet Plone Site Passage en revue des propriétés des objets pertinents FORMATION DE BASE À PLONE – p. 5 Apprentissage de Zope FORMATION DE BASE À PLONE – p. 6 Ce qu’il faut savoir sur Zope, Python et CMF FORMATION DE BASE À PLONE – p. 7 Tout est conditionné par : www.plone.org Plone 2.0.4 Linux/BSD/Windows/Solaris tarball ( 3.5 MB) Requires Zope 2.7.0 or higher with Python 2.3.3 (recommended) or Zope 2.6.4 with Python 2.2.3. FORMATION DE BASE À PLONE – p. 8 A savoir sur Zope Introduction www.zope.org Version stable début novembre 2004 : Zope 2.7.3 (pas de patches publiés) Patches ( disponibles : http://www.zope.org/Products/ ) Bugs : http://collector.zope.org/Zope/ FORMATION DE BASE À PLONE – p. 9 Comprendre un peu mieux l’intérêt de Zope FORMATION DE BASE À PLONE – p. 10 Comprendre un peu mieux l’intérêt de Zope FORMATION DE BASE À PLONE – p. 10 Comprendre un peu mieux l’intérêt de Zope FORMATION DE BASE À PLONE – p. 10 Comprendre un peu mieux l’intérêt de Zope FORMATION DE BASE À PLONE – p. 10 Comprendre un peu mieux l’intérêt de Zope + open source + python + ZODB (sa propre base de données orientée objet) + gestion des utilisateurs + gestion de la sécurité + un concept : un objet Zope hérite du contexte de son conteneur. FORMATION DE BASE À PLONE – p. 10 Architecture générale de Zope http://www.coherence.nl/sites/userfiles/stills/zope_structuur.gif FORMATION DE BASE À PLONE – p. 11 Et sur Python... Python est libre Python est un langage orienté objet, interprété, écrit en C Langage de script puissant et relativement abordable Installation (just apt-get it !!!) FORMATION DE BASE À PLONE – p. 12 On peut alors installer Zope 1. Télécharger l’archive sur zope.org 2. Recommendations : bash, Python 2.3.3 (ou +), GNU make, compilateur C (gcc) 3. Création du répertoire où on va installer Zope : mkdir /usr/local/zopetoday 4. Détarrer l’archive (tar -xvzf Zope-2.7.3.tar.gz) 5. ./configure –prefix=/usr/local/zopetoday 6. make 7. make install 8. /usr/local/zopetoday/bin/mkezopeinstances.py FORMATION DE BASE À PLONE – p. 13 Installation de Zope FORMATION DE BASE À PLONE – p. 14 Installation de Zope FORMATION DE BASE À PLONE – p. 14 Installation de Zope FORMATION DE BASE À PLONE – p. 14 Installation de Zope FORMATION DE BASE À PLONE – p. 14 A savoir sur CMF... CMF 1.4.4 les Patches (zope.org/CMF Composition : CMFCore, CMFDefault, CMFTopic, CMFCalendar ... Installation FORMATION DE BASE À PLONE – p. 15 Ce qu’il faut savoir sur Plone FORMATION DE BASE À PLONE – p. 16 Fiche signalétique Plone Auteurs : Alexander Limi, Alan Runyan, Vidar Andersen Licenses : ZPL - GPL Sociétés : ingeniweb - pilotsystems - linagora bluedynamics ... Ressources : zope.org - zopera.org - zopelabs.org collective.sf.net - zettai.net ... FORMATION DE BASE À PLONE – p. 17 Architecture générale de Plone source : http://www.amaze.nl/img/plone-diagram.gif FORMATION DE BASE À PLONE – p. 18 Connaître Plone 1/5 Surcouche de CMF Utilise CMF non modifié Est disponible sur www.plone.org Est un ensemble d’objets (scripts, méthodes, templates d’affichage, outils et workflow) FORMATION DE BASE À PLONE – p. 19 Connaître Plone 2/5 1. Consulter www.plone.org 2. Ne pas oublier de consulter les pages de recommandations (quelle version de CMF, Python et Zope), les errata et les changelog entre les versions 3. Détarrer l’archive. 4. Copier le contenu de l’archive ... FORMATION DE BASE À PLONE – p. 20 Connaître Plone - 3/5 L’archive de Plone-2.0.3 contient : CMF - http://cmf.zope.org/download/CMF-1.4.4/CMF-1.4.4.tar.gz BTreeFolder2 http://hathaway.freezope.org/Software/BTreeFolder2/BTreeFolder2-1.0.tar.gz CMFActionIcons - http://zope.org/Members/tseaver/CMFActionIcons/CMFActionIcons0.9/CMFActionIcons-0.9.tar.gz CMFFormController http://osdn.dl.sourceforge.net/sourceforge/collective/CMFFormController-1.0.2.tgz CMFPlone - http://osdn.dl.sourceforge.net/sourceforge/plone/PloneBase-2.0.3.tar.gz CMFQuickInstallerTool http://osdn.dl.sourceforge.net/sourceforge/collective/CMFQuickInstallerTool-1.5.0.tgz Formulator http://zope.org/Members/infrae/Formulator/Formulator-1.6.2/Formulator-1.6.2.tgz GroupUserFolder http://osdn.dl.sourceforge.net/sourceforge/collective/GroupUserFolder-2.0.1.tgz FORMATION DE BASE À PLONE – p. 21 Connaître Plone - 3/5 L’archive de Plone-2.0.3 contient : PlacelessTranslationService http://osdn.dl.sourceforge.net/sourceforge/collective/PlacelessTranslationService1.0fork-rc7.tar.gz PloneErrorReporting http://osdn.dl.sourceforge.net/sourceforge/collective/PloneErrorReporting-0.1.tar.gz PloneTranslations http://osdn.dl.sourceforge.net/sourceforge/plone-i18n/PloneTranslations-0.4.tar.gz Archetypes http://osdn.dl.sourceforge.net/sourceforge/archetypes/archetypes-1.2.5-rc4.tgz PortalTransforms http://osdn.dl.sourceforge.net/sourceforge/archetypes/PortalTransforms-1.0.4.tgz ExternalEditor http://zope.org/Members/Caseman/ExternalEditor/0.7.2/ExternalEditor-0.7.2-src.tgz Epoz - http://mjablonski.zope.de/Epoz/releases/Epoz-0.8.0.tar.gz FORMATION DE BASE À PLONE – p. 21 Connaître Plone - 4/5 Ce qui concerne plus particulièrement Plone : BTreeFolder CMFPlone CMFActionIcons CMFFormController CMFQuickInstallerTool GroupUSerFolder (GRUF - pour gérer les groupes d’utilisateurs.) Formulator FORMATION DE BASE À PLONE – p. 22 Connaître Plone - 5/5 1. Consulter http://plone.org/collector 2. Lire les mailing listes (au moins de temps en temps) 3. Lire les forums (zopera, zettai...) 4. Se tenir au courant des mises à jour, des évolutions futures pour adapter le code / les solutions 5. S’entraîner FORMATION DE BASE À PLONE – p. 23 Démonstration et langage utilisé Démonstration commentée (installation - visualisation) Et nommage des objets et des concepts FORMATION DE BASE À PLONE – p. 24 L’objet Plone Site FORMATION DE BASE À PLONE – p. 25 Les types d’objets Tools (= outils) Les journaux d’erreurs Les templates d’affichage Les skins (dont les css) Scripts Python Indexation Les utilisateurs La sécurité Le Workflow FORMATION DE BASE À PLONE – p. 26 Le classement de ces objets La logique de thème La logique séparation forme / contenu / présentation Les propriétés de chacun de ces objets (classement par onglets) FORMATION DE BASE À PLONE – p. 27 Explications avec un site Plone siteplone/manage les slides ci-dessous ne seront donc pas forcément visualisés lors de la présentation FORMATION DE BASE À PLONE – p. 28 RAM Cache - HTTP Cache RAM Cache : mémoriser (en RAM) les résultats de dtml-methods, de scripts Python et des SQL-methods... HTTP cache permet de donner les indications de cache aux navigateurs des visiteurs, cela permet aussi de mettre en cache des objets plutôt statiques : images, certains documents... FORMATION DE BASE À PLONE – p. 29 Portal_actions Contient les actions Onglet Actions Providers Points importants : catégorie (utilisation), FORMATION DE BASE À PLONE – p. 30 Portal_catalog Les propriétés L’utilisation FORMATION DE BASE À PLONE – p. 31 Portal_metadata Indexation DublinCore Fonctionnement de l’outil Onglets : "Elements Metadata Policies" FORMATION DE BASE À PLONE – p. 32 Portal_properties form_properties navigation_properties navtree_properties site_properties FORMATION DE BASE À PLONE – p. 33 Portal_skins Contient le répertoire Custom Contient les css, les templates d’affichage des produits, des types de contenu ... Points importants : plone_custom.css , base_properties , ... FORMATION DE BASE À PLONE – p. 34 Portal_types Présentation de l’outil Les onglets Les catégories Modification et fonctionnement FORMATION DE BASE À PLONE – p. 35 ZMI : onglet security Notion d’acquisition (héritage) Pour les droits Détails des autorisations FORMATION DE BASE À PLONE – p. 36 acl_users (Group-aware User Folder) GRUF : prise en main et onglet Audit Gestion des Groupes et Utilisateurs dans la ZMI et dans le site Plone et aussi portal_groupdata , portal_groups , portal_memberdata, portal_membership FORMATION DE BASE À PLONE – p. 37 Portal_workflow Présentation de l’outil de workflow de Plone Nous y reviendrons dans une section plus détaillée FORMATION DE BASE À PLONE – p. 38 Deuxième Jour MATIN -> LES PRODUITS EXISTANTS ET LEUR PERTINENCE APRES-MIDI -> LE LANGAGE DE TEMPLATE et LE WORKFLOW FORMATION DE BASE À PLONE – p. 39 Seconde journée 1/2 Les produits existants Listing par catégorie, exemples d’utilisation... La gestion des utilisateurs Les portal_types (contenu) Les outils des administrateurs (gestion des incidents, doc-anywhere...) Les objets et fichiers (localFS...) Les connecteurs de bases de données Questions réponses FORMATION DE BASE À PLONE – p. 40 Seconde journée 1/2 Langage de Template et le workflow Le langage de Template : ZPT Comment ça marche ? Sans macro Avec macro Le worklow Comment cela se présente Les différents onglets (actions, variables, script...) Exemple de deux schémas de workflow FORMATION DE BASE À PLONE – p. 41 Les produits existants FORMATION DE BASE À PLONE – p. 42 La gestion des utilisateurs GRUF Connexion aux annuaires FORMATION DE BASE À PLONE – p. 43 Les portal_types (contenus) Les forums de discussion : CMFBoard PloneArticle ... CMFPhoto, CMFAlbum FORMATION DE BASE À PLONE – p. 44 Les outils d’administrateurs Gestion des incidents Doc Finder Everywhere FORMATION DE BASE À PLONE – p. 45 Gestion des objets et des fichiers LocalFS FORMATION DE BASE À PLONE – p. 46 Les connecteurs de bases de données MySQL DA PostGreSQL DA FORMATION DE BASE À PLONE – p. 47 Zoom sur un ou des produits existants FORMATION DE BASE À PLONE – p. 48 Echanges Questions réponses Explications plus spécifiques sur certains produits FORMATION DE BASE À PLONE – p. 49 Le langage de Template Zope Page Template FORMATION DE BASE À PLONE – p. 50 Mini rappel - html - css Le html Les css FORMATION DE BASE À PLONE – p. 51 Le langage - introduction Avant DTML (mais inférieur en qualité et fonctionnailtés) TAL : Template Attribute Language Des balises : <span> </span> Des attributs : class id Des expressions : documentTitle right FORMATION DE BASE À PLONE – p. 52 Un peu de DTML tout de même FORMATION DE BASE À PLONE – p. 53 ZPT -> Le langage - expressions 1/ 1. tal:content code : <p><span tal:content="here/title"> Ici on aura le titre </span></p> interprétation : <p><span> Le titre </span></p> 2. tal:replace code : <p><span tal:replace="here/title"> Ici on aura le titre </span></p> interprétation : <p> Le titre </p> FORMATION DE BASE À PLONE – p. 54 ZPT -> Le langage - expressions 2/ 1. tal:define code : tal:define="resultObject result/getObject; creator result/Creator; id here/getId; created here/created;" tal:define="ici request/URL; portal_url here/portal_url; cible python:portal_url + ’/index_html’;" 2. tal:condition code : tal:condition="python:ici==cible" FORMATION DE BASE À PLONE – p. 55 Le langage - expressions / 1. tal:repeat code : 2. tal:attributes code : <a href="/view" tal:attributes="href resulturl"> lien </a> FORMATION DE BASE À PLONE – p. 56 Le langage - expressions METAL / <div metal:define-macro="portlet"></div> <div metal:use-macro="here/batch_macros/macros/navigation" /> </div> FORMATION DE BASE À PLONE – p. 57 Dissection de listes <div tal:define="liste python:[’un’, ’deux’, ’trois’]" tal:repeat="item liste"> <span tal:content="item"></span> <span tal:condition="not:repeat/item/end">,</span> </div> FORMATION DE BASE À PLONE – p. 58 Dissection d’un portlet FORMATION DE BASE À PLONE – p. 59 Réalisations de Page templates pour : FORMATION DE BASE À PLONE – p. 60 Les workflows dans Plone - DCWorkflow FORMATION DE BASE À PLONE – p. 61 Introduction au Workflow Objectifs Schématisation des workflows ( actions - états ) Le workflow dans Plone : DC Workflow FORMATION DE BASE À PLONE – p. 62 DC Workflow dans Plone Présentation de l’outil de workflow (portal_workflow) Différence Workflow des Répertoires (Folder) et Types de contenus Plone Etapes pour appliquer un nouveau Workflow à un portal_type spécifique. FORMATION DE BASE À PLONE – p. 63 Schématiser un workflow Mettre par écrit ses besoins Utiliser des flèches :-) Utiliser l’existant avant de scripter FORMATION DE BASE À PLONE – p. 64 Exemple d’un workflow 1/2 Le workflow par défaut de Plone : Soumission / Modération / Publication Mise en évidence des droits dans le workflow Notons que le workflow est beaucoup plus développé dans la seconde formation. FORMATION DE BASE À PLONE – p. 65 Exemple d’un workflow 2/2 Published publish reject retract Pending retract Private reject show submit by user retract by user hide hide Visible hide by user show by user publish by reviewer reject by reviewer hide FORMATION DE BASE À PLONE – p. 66 Troisième Jour MATIN -> PETIT POINT SUR L’INDEXATION - JE CREE MON SITE (1/2) APRES-MIDI -> JE CREE MON SITE (2/2) ECHANGES FORMATION DE BASE À PLONE – p. 67 Troisième journée 1/2 L’indexation et ’je crée mon site (1/2)’ L’indexation Pourquoi Les métadonnées Le Z Catalog La recherche Je crée mon site (1/2) Récadaction / Schématisation de mon projet Installations Interfaçage (portal_actions, skins, portal_types) Intégration (produits, bases, services) FORMATION DE BASE À PLONE – p. 68 Troisième journée 2/2 ’Je crée mon site (2/2)’ et Echanges Automatisations, récupération de l’existant Optimisation du site Plone (cache...) Pour aller plus loin Questions / Réponses / Echanges FORMATION DE BASE À PLONE – p. 69 L’indexation FORMATION DE BASE À PLONE – p. 70 Je créé mon site avec Zope et Plone FORMATION DE BASE À PLONE – p. 71 Cahier des charges FORMATION DE BASE À PLONE – p. 72