Strumenti personali
Tu sei qui: Portale Scopri Documentazione Guide Usare paster e zopeskel per la generazione automatica di content type Creazione di un template archetype
Azioni sul documento

Creazione di un template archetype

Creazione del template principale
ZopeSkel e Paster forniscono un sistema di comandi interattivi e template per velocizzare lo sviluppo di prodotti Plone. Vediamo come creare un content type custom per Plone3.
Pagina 3 di 7.

Creazione di un template archetype

Se abbiamo creato un'istanza plone tramite buildout, ci spostiamo dalla radice della nostra istanza alla directory di sviluppo /src per iniziare la creazione di un nuovo archetype.

cd myplone3instance/src
paster create -t archetype 

Si avvia un processo interattivo dove paster chiede di inserire le informazioni sul progetto.

Scegliamo anzitutto un nome composto dal namespace  (ploneit) e dal nome del prodotto (simpleproject) ed il titolo "amichevole" del progetto (Ploneit Simple Project). Ci viene poi richiesto di inserire il namespace ed il nome separatamente ed altre informazioni.

Namespace?

La struttura dei progetti creati con paster è "eggificata", cioè utilizza le convenzioni degli egg dei repository python. La presenza di un namespace in aggiunta al nome del prodotto è una delle caratteristiche dei python eggs e permette di definire un identificativo unico per i propri prodotti. In questi esempi abbiamo scelto il namespace ploneit. Per una scelta di retrocompatibilità avremmo potuto usare Products.

Attenzione alla richiesta di creazione di un prodotto zope2: il default è False, ma noi probabilmente vogliamo mettere True.

Selected and implied templates:
 ZopeSkel#basic_namespace  A project with a namespace package
 ZopeSkel#plone            A Plone project
 ZopeSkel#archetype        A Plone project that uses Archetypes

Enter project name: ploneit.simpleproject
Variables:
  egg:      ploneit.visitcard
  package:  ploneitvisitcard
  project:  ploneit.visitcard
Enter title (The title of the project) ['Plone Example']: Ploneit Simple Project
Enter namespace_package (Namespace package) ['plone']: ploneit
Enter package (The package contained namespace package) ['example']: simpleproject
Enter zope2product (Are you creating a Zope 2 Product?) [False]: True
Enter version (Version) ['0.1']: 
Enter description (One-line description of the package) ['']: A simple test project
Enter long_description (Multi-line description (in reST)) ['']: 
A simple test project featuring custom content types
Enter author (Author name) ['Plone Foundation']: Lili
Enter author_email ['plone-developers@lists.sourceforge.net']: eleonora@reflab.com
Enter keywords (Space-separated keywords/tags) ['']: 
Enter url (URL of homepage) ['http://svn.plone.org/svn/plone/plone.example']: 
Enter license_name (License name) ['GPL']: 
Enter zip_safe (True/False: if the package can be distributed as a .zip file) [False]: De

Ci ritroviamo con una directory chiamata ploneit.simpleproject che contiene lo scheletro del nostro nuovo prodotto.

ploneit.simpleproject/
|-- README.txt
|-- docs/
|-- ploneit/
|   |-- __init__.py
|   `-- simpleproject/
|       |-- __init__.py
|       |-- browser/
|       |-- config.py
|       |-- configure.zcml
|       |-- content/
|       |-- interfaces.py
|       |-- portlets/
|       |-- profiles/
|       |-- tests/
|       `-- tests.py
|-- ploneit.simpleproject.egg-info/
|-- setup.cfg
`-- setup.py