Document Actions

Criar Imagem randômica

by Tânia Andrea last modified 2007-05-11 14:53

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!