bobtemplates.plone liefert Vorlagen für mr.bob template um Pakete für Plone-Projekte zu erstellen.
Um ein Paket zu erstellen wie vs.policy
, geben Sie folgendes im Terminal ein:
$ cd src/
$ ../bin/mrbob -O vs.policy bobtemplates:plone_addon
Es können auch Pakete mit verschachtelten Namensräumen erstellt werden, z.B.:
$ ../bin/mrbob -O vs.bootstrap.tinymce bobtemplates:plone_addon
Anschließend müssen Sie die folgenden Optionen beantworten:
Optionen sind
Basic
Dexterity
Theme
Der Standardwert ist Basic
.
Hier sollte Ihr Name angegeben werden
Ihre E-Mail-Adresse
Ihr Account-Name bei github
Einzeilige Beschreibung des Pakets.
Der Standardwert ist An add-on for Plone
Für welche Plone-Version wird das Paket entwickelt?
Basic
¶Die Basic
-Vorlage liefert die folgende Dateistruktur:
vs.policy/
├── bootstrap-buildout.py
├── buildout.cfg
├── CHANGES.rst
├── CONTRIBUTORS.rst
├── docs
│ ├── index.rst
│ ├── LICENSE.GPL
│ └── LICENSE.rst
├── MANIFEST.in
├── README.rst
├── setup.py
├── src
│ └── vs
│ ├── __init__.py
│ └── policy
│ ├── browser
│ │ ├── configure.zcml
│ │ ├── __init__.py
│ │ ├── overrides
│ │ └── static
│ ├── configure.zcml
│ ├── __init__.py
│ ├── interfaces.py
│ ├── locales
│ │ ├── update.sh
│ │ └── vs.policy.pot
│ ├── profiles
│ │ ├── default
│ │ │ ├── browserlayer.xml
│ │ │ ├── metadata.xml
│ │ │ └── vspolicy_default.txt
│ │ └── uninstall
│ │ ├── browserlayer.xml
│ │ └── vspolicy_uninstall.txt
│ ├── setuphandlers.py
│ ├── testing.py
│ └── tests
│ ├── __init__.py
│ ├── robot
│ │ └── test_example.robot
│ ├── test_robot.py
│ └── test_setup.py
└── travis.cfg
buildout.cfg
Das Paket enthält eine Buildout-Konfigurationsdatei, die z.B. zum Testen verwendet werden kann.
src/vs/policy/tests/
Das Paket kommt mit einem Test-Setup und Beispieltests zur Installation des Pakets.
Es enthält außerdem in src/vs/policy/tests/robot/test_example.robot
einen
Robot-Test für das Anmelden an der Plone-Site.
Schließlich enthält das Paket mit travis.cfg
auch eine Konfigurationsdatei,
das das Testen des Pakets mit Travis erlaubt.
src/vs/policy/profile
Das Paket enthält ein Generic Setup-Profil, das einen Browserlayer installiert.
Für Plone 5 wird daneben noch ein uninstall
-Profil installiert.
src/vs/policy/Locales
Das Paket registriert ein Verzeichnis für die Übersetzungsdateien.
src/vs/policy/browser/overrides
Das Paket registriert einen Ordner, in dem Templates etc. mit z3c.jbot überschrieben werden können.
src/vs/policy/setuphandlers.py
Diese Datei kann verwendet werden um Code hinzuzufügen, der beim Installieren eines Pakets ausgeführt werden soll.
Für Plone 5 gibt es innerhalb dieser Datei auch eine Methode, die beim Deinstallieren aufgerufen wird.
setup.py
In install_requires
werden zusätzlich die folgenden zwei Pakete angegeben:
plone.app.theming
plone.app.themingplugins
src/vs/theme/configure.zcml
Hier wird der Ordner mit dem Theme konfiguriert:
<configure
...
xmlns:plone="http://namespaces.plone.org/plone"
...
<plone:static
directory="theme"
type="theme"
name="vs.theme"
/>
src/vs/theme/profiles/default/metadata.xml
Hier wird als Abhängigkeit plone.app.theming
angegeben:
<dependency>profile-plone.app.theming:default</dependency>
Dexterity
¶setup.py
In install_requires
wird zusätzlich plone.app.dexterit
angegeben
src/vs/task/interfaces.py
Für den Dexterity-Artikeltyp wird ein Interface angegeben, in unserem Fall:
from vs.task import _
from zope import schema
from zope.interface import Interface
class ITask(Interface):
title = schema.TextLine(
title=_(u"Title"),
required=True,
)
description = schema.Text(
title=_(u"Description"),
required=False,
)
src/vs/task/profiles/default/metadata.xml
Hier wird als Abhängigkeit plone.app.dexterity
angegeben:
<dependency>profile-plone.app.dexterity:default</dependency>