formation de base

publicité
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
Téléchargement