Exemplo de uso da API do Plone
Exemplo 1: Como acessar um objeto de conteúdo a partir de Script Python.
Antes de tudo, vamos criar um objeto de conteúdo atravez da interface do Plone. Então, nos vamos acessar ele de um script de acordo com os seguintes passos:
Adicione uma página (Document) com o id my_document. Este passo é diferente se estamos trabalhando com o Plone 2.11. por que o formulario de adição de pagina requer somente o título da página, neste caso nos podemos escreve My Document (e o id será gerado automáticamente).
NA ZMI, navegue através do Plone site e entre em
portal_skins/custom. Lá, adicione um script (Script (Python)) com o seguinte conteúdo:
from Products.CMFCore.utils import getToolByName
urltool = getToolByName(context, "portal_url")
portal = urltool.getPortalObject()
document = getattr(portal, "my_document")
print document.Title()
print document.CookedBody()
return printed
No exemplo anterior, nós podemos ver o uso das funções getToolByName e getattr e dos métodos getPortalObject, Title e CookedBody. Vamos ver um pouco mais a fundo:
getToolByName(obj, name, default=[])Essa função é importada do modulo CMF e retorna a tool correspondente ao name e associado ao obj.getattr(object, name[, default])É uma função do Zope e retorna o valor do atributo name do object. name (O parametro name tem que ser uma string). Se o objeto não tem atributo name, uma exeçãoAttributeErrorserá disparada, exceto o terceiro argumento seja setado.hasattr(object, name)E uma função do zope e retorna verdadeiro se o argumento name é o nome de algum atributo de um objeto, e ao contrário retorna valso.getPortalObject(self)É uma método de classe de Products.CMFCore.URLTool.URLTool. Ele retorna um objeto do tipo Portal.