Bom estou começando agora no plone 3... o primeiro passo é reproduzir
o skin que ja utilizamos aqui no plone 2.5 para plone 3.
Utilizei a versao 3.0 do DIYPloneStyle para gerar o "esqueleto" do skin.
Seguindo esses tutoriais:
http://plone.org/documentation/tutorial/customizing-main-template-viewlets/overriding-a-viewlet
http://plone.org/documentation/how-to/override-the-portlets-in-plone-3.0
E olhando o codigo em plone/app/portlets/portlets, fiz o seguinte:
1 - Dentro da pasta browser criei o modulo tempo.py (removi os imports
para ficar menor)
class ITempoPortlet(IPortletDataProvider):
"""Um portlet para exibicao do tempo
"""
class Assignment(base.Assignment):
implements(ITempoPortlet)
title = _(u'Tempo')
class Renderer(base.Renderer):
_template = ViewPageTemplateFile('tempo.pt')
@property
def available(self):
return len(self._data())
def published_tempo_items(self):
return self._data()
@ram.cache(render_cachekey)
def render(self):
return xhtml_compress(self._template())
@memoize
def _data(self):
//aqui esta retornando uma consulta ao catálogo
class AddForm(base.NullAddForm):
def create(self):
return Assignment()
2 - Adicionei o seguinte no configure.zcml
3 - Criei o arquivo tempo.pt dentro da pasta browser.
4 - Em profiles/default adicionei o arquivo portlets.xml
Ao iniciar o plone o portlet tempo é exibido na lista de portlets,
porém ao adiciona-lo na página ele nao aparece. Inicialmente aparecia
uma mensagem dizendo q havia ocorrido um problema de renderização, mas
depois passou simplemente a nao carregar.
Deve estar faltando alguma coisa simples, porém estou por fora do
sistema de portlets do plone 3. Alguêm pode me ajudar?
--
Alexandre Marinho
Consultor Pleno - ITEC/AL