giovedì 7 aprile 2011

Spostare le viewlets di Plone

Oggi con il mio Plone 4.0.4 di test sono riuscito a spostare una viewlet da un viewlet manager ad un altro.
Ho seguito la documentazione per Plone 3 e ho lavorato customizzando un prodotto fatto da altri (il tema Webrichtlijnen).
Lo scopo era quello di portare in alto la viewlet delle site_actions che in Plone 4 sta nel footer.
Ecco le personalizzazioni svolte.
In buildout-cache/eggs/collective.webrichtlijnen/collective/webrichtlijen/browser/configure.zcml

ho inserito queste righe:

<!-- Viewlets registration -->
  <browser:viewlet
      name="plone.site_actions"
      manager="plone.app.layout.viewlets.interfaces.IPortalHeader"
      class="plone.app.layout.viewlets.common.SiteActionsViewlet"
      permission="zope2.View"
      layer=".interfaces.IThemeSpecific"
      />


In buildout-cache/eggs/collective.webrichtlijnen/collective/webrichtlijen/profiles/default/viewlets.xml (creato ex novo) ho inserito

<?xml version="1.0"?>
<object>
  <order manager="plone.portalheader" skinname="Webrichtlijnen"
         based-on="Plone Default">
    <viewlet name="plone.site_actions" insert-after="plone.skip_links" />
  </order>
  <!-- We hide the one we want to move -->
  <hidden manager="plone.portalfooter" skinname="Webrichtlijnen">
        <viewlet name="plone.site_actions" />
          </hidden>
</object>

Il cui senso è di inserire la viewlet site_actions dentro il viewlet manager portalheader e di nasconderla nel viewlet manager portalfooter dove si trovava prima.

Ho fatto un po' di debugging lanciando plone con il comando instance fg.
Per vedere applicate le modifiche ad un sito già fatto è necessario reinstallare il prodotto Webrichtlijnen appena customizzato sul filesystem.
Riferimenti
Ottima documentazione a questo scopo si può trovare su https://weblion.psu.edu/trac/weblion/wiki/MoveViewletsBetweenViewletManagers

Nessun commento:

Posta un commento