Criar Imagem randômica
Aprenda como mostrar uma imagem aleatória a cada refresh!
1) Crie o script python com o conteúdo abaixo, chamado "radom_fotografia", que retornará um objeto aleatório baseado na especificação de busca no catalog:
import random
# o critério de busca no catalog você definiria...
results = context.portal_catalog.searchResults(path='/seu_path_no_catalog/',
portal_type='Image',
review_state='published',
sort_limit=10)
if results:
r = random.choice(results)
object = r.getObject()
valores = {}
valores['titulo'] = object.title
valores['data'] = object.Date()
valores['url'] = object.absolute_url()
# você poderia pegar outros...
return valores
else:
return results
2) No seu portlet:
2.1) Defina o objeto:
tal:define="obj python:context.radom_fotografia()"
tal:condition="python:obj"
2.2) Aqui apresento apenas a imagem com link e o título do objeto escolhido:
<a href=""
class="tile"
tal:attributes="href string:${obj/url}"
target="_blank">
<img tal:attributes="src string:${obj/url}/image_thumb" />
</a>
<span tal:replace="obj/titulo">
titulo
</span>
No meu caso não precisei pegar randomicamente mais de um objeto...
Dica para quem não encontrou a "variável" seu_path_no_catalog:
Para pegar o caminho da sua pasta de imagens no catálogo, acesse ZMI/seu Plone Site/portal_catalog/aba Catalog, e encontre o identificador desse objeto.
Boa sorte!