=====
Tipps
=====
Tipps zu Migrationen und zukunftsfähigeren Produkten.
- Starten Sie Ihre Zope-Instanz im Debug-Modus (``ZOPE_INSTANCE/bin/zopectl fg``) und nutzen anschließend Ihr Produkt. Überprüfen Sie, ob auf der Konsole *deprecation warnings* ausgegeben werden.
- Entfernen Sie den ``plone_deprecated``-Skin-Layer und überprüfen, ob Ihre Anwendung anschließend noch problemlos funktioniert.
- Auf dem QuickInstaller basierende Installationen sollten stattdessen GenericSetup-Profile verwenden.
- Ab CMF 2.1.0 steht ``addWorkflowFactory`` nicht mehr zur Verfügung. Workflows können von da an nur noch mit dem GenericSetup-Tool erstellt werden. Zur Migration installieren Sie einfach Ihr Produkt in einer Plone2.5-Site und exportieren den Workflow anschließend mit dem GenericSetup-Tool. Bevor Sie schließlich die alte Python-basierte Workflow-Definition aus dem *Extensions*-Ordner löschen, achten Sie darauf, dass ggf. die *workflow scripts* erhalten bleiben.
.. - Fügen Sie eine ``configure.zcml``-Datei im Wurzelverzeichnis Ihres Produkts hinzu, das das Standardprofil registriert::
..
- In Archetypes Schemata deklarierte Indizes werden ebenfalls in GenericSetup-Profile verschoben. Der Index für dieses Feld::
StringField(
name='issueType',
index="FieldIndex:schema",
widget=SelectionWidget(
label="Issue type",
description="Select the type of issue.",
label_msgid='My_label_issueType',
description_msgid='My_help_issueType',
i18n_domain='MyProduct',
),
enforceVocabulary=True,
vocabulary='getIssueTypesVocab',
required=True
),
wird in ``catalog.xml`` folgendermaßen dargestellt::
- ``manage_``-Methoden sollten durch ``events`` ersetzt werden.
- Um die *Permissions* aus dem CMFCore-Produkt zu importieren, sollte in der ``__init__.py`` Datei folgender (rückwärtskompatibler) Code verwendet werden::
try: # for Plone 2.5 and above
from Products.CMFCore import permissions as CMFCorePermissions
except: # for Plone 2.1
from Products.CMFCore import CMFCorePermissions
- Archetypes 1.5, das zusammen mit Plone 3.0 ausgeliefert wird, enthält kein ``Transaction``-Modul mehr, statt::
from Products.Archetypes import transaction
kann nun einfach folgendes verwendet werden::
import transaction
- Zope hat die Syntax, um Transaktionen zu importieren geändert. Ab Zope 2.10.x wird die bisherige Syntax::
get_transaction().commit(1)
durch folgende ersetzt::
transaction.commit(1)
``transaction`` muss selbstverständlich zunächst importiert werden.
- CMF hat seit längerer Zeit ``ContentFactoryMetadata`` durch ``FactoryTypeInformation`` ersetzt. Der Aufruf::
from Products.CMFCore.TypesTool import ContentFactoryMetadata
sollte also ersetzt werden durch::
from Products.CMFCore.TypesTool import FactoryTypeInformation
- Berechtigungen wie z.B. ``cmf.ModifyPortalContent`` müssen in ``zcml`` angegeben werden::
Dabei wird ``zcml:condition`` in Plone 4.1.3 definiert in der ``meta.zcml``-Datei::