2011/09/23

Moving collective.geo.kml Viewlet

collective.geo.* 是一組提供 GIS 服務的 Plone 模組,它的地圖顯示區塊,預設是在 description 欄位下方,也就是在 <div id="viewlet-above-content-body"> 的下方,想要把它移到 <div id="viewlet-below-content"> 旁邊。 首先,用 firebug 得知顯示區塊被包在 <div id="kml-content-viewlet"> 裡,那麼它是由哪個檔案提供的呢?

$ grep -r kml-content-viewlet buildout-cache/eggs

collective/geo/kml/browser/kmlcontentviewlet.pt 檔案有我們要找的 div,照慣例,先到 collective/geo/kml/browser/configure.zcml 找線索:

  <browser:viewlet
      name="collective.geo.kml.kmlcontentviewlet"
      for="collective.geo.geographer.interfaces.IGeoreferenceable"
      class=".viewlets.ContentViewlet"
      manager="plone.app.layout.viewlets.interfaces.IAboveContentBody"
      template="kmlcontentviewlet.pt"
      layer="..interfaces.IGeoKmlLayer"
      permission="zope2.View"
  />

看來把 viewlet 的 manager 由 IAboveContentBody 改到 IBelowContent 就行。

No comments: