Strumenti personali
Tu sei qui: Portale Scopri Documentazione Guide Sostituire i contenuti base di Plone con i propri archetype Analisi e modifica del profilo di Generic Setup
Azioni sul documento

Analisi e modifica del profilo di Generic Setup

Il profilo di Generic Setup fornito da paster va modificato per i nostri scopi
Una metodologia di sviluppo di nuovi contenuti usando archetype, che vanno a rimpiazzare un tipo base, fornito da Plone.
Pagina 3 di 6.

Cosa paster non fa

Se nella maggior parte dei casi paster ci permette di non mettere mano ai file XML nel profilo di Generic Setup generato, ma il nostro è un caso particolare.

Fondamentalmente stiamo andando a descrivere il nostro nuovo tipo come se fosse uno dei tipi base Plone. Il consiglio in questo caso è quindi quello di ignorare ciò che paster ha generato e partire dalla descrizione originale.

Le definizioni dei tipi base di Plone sono nel profilo di Generci Setup del prodotto CMFPlone. Nel nostro caso specifico Products.CMFPlone/Products/CMFPlone/profiles/default/types/Link.xml.

Dopo aver sostituito il contenuto del nostro Link.xml con quello originale di Plone, effettuiamo le modifiche qui sotto che analizzeremo subito dopo.

<?xml version="1.0"?>
<object name="Link"
   meta_type="Factory-based Type Information with dynamic views"
   i18n:domain="plone" xmlns:i18n="http://xml.zope.org/namespaces/i18n">
 <property name="title" i18n:translate="">Link</property>
 <property name="description"
      i18n:translate="">A link to an internal or external resource.</property>
 <property name="content_icon">link_icon.gif</property>
 <property name="content_meta_type">ATLink</property>
 <property name="product">collective.popuplink</property>
 <property name="factory">addPopupLink</property>
 <property name="immediate_view">link_redirect_view</property>
 <property name="global_allow">True</property>
 <property name="filter_content_types">True</property>
 <property name="allowed_content_types"/>
 <property name="allow_discussion">False</property>
 <property name="default_view">link_redirect_view</property>
 <property name="view_methods">
  <element value="link_redirect_view"/>
 </property>
 <alias from="(Default)" to="(dynamic view)"/>
 <alias from="edit" to="atct_edit"/>
 <alias from="sharing" to="@@sharing"/>
 <alias from="view" to="(selected layout)"/>
 <action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${object_url}" visible="True"
    i18n:attributes="title">
  <permission value="View"/>
 </action>
 <action title="Edit" action_id="edit" category="object" condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True"
    url_expr="string:${object_url}/edit" visible="True"
    i18n:attributes="title">
  <permission value="Modify portal content"/>
 </action>
 <action title="References" action_id="references" category="object"
    condition_expr="object/archetype_tool/has_graphviz"
    url_expr="string:${object_url}/reference_graph" visible="True"
    i18n:attributes="title">
  <permission value="Modify portal content"/>
  <permission value="Review portal content"/>
 </action>
 <action title="External Edit" action_id="external_edit" category="object"
    condition_expr="object/externalEditorEnabled"
    url_expr="string:${object_url}/external_edit" visible="False"
    i18n:attributes="title">
  <permission value="Modify portal content"/>
 </action>
</object>

Analisi delle modifiche

  • L'unica modifica (importante) è cambiare la property con attributo name="product" in quella che paster aveva generato (il namespace del nostro prodotto).
  • La property con attributo name="factory" viene cambiata (torneremo alla sezione successiva sulla cosa).
  • Gli attributi relativi all'internazionalizzazione (i18n:domain) rimangono a valore "plone". Questo ci permette di sfruttare le traduzioni originali!