Criando a pagina de apresentação do portal
Corpo do texto :
Criando o Page Template Neste primeiro passo vamos criar a página index do nosso portal, para isso acesse a raiz do seu plone site via ZMI . Adicione um Page Template como o id igua a "index_html" Agora quando você acessar o seu plone site esta página será invocada. Mais ainda ela não faz referência a nada dinamico e nem esta invocando macro do plone, para isto digite este código no seu Page Template (index_html):<html metal:use-macro="here/main_template/macros/master"> <div metal:fill-slot="content" style="padding:1em;"> Minha Inicial </div> </html> Observação: Estou usando a macro content em vez da macro main , para ganhar mais espaço na página inicial, pois a macro main possui mais margem do que a macro content .Criando os Portlets Neste
passo vamos criar Portles para buscar os últimos eventos, notícias e
documentos publicados. Para criar os portlet vá até a ZMI da sua
instancia e adicione um page_template para :Portlet eventos id : portlet_eventosdescrição: Porltet que ira listar os 5 últimos eventos publicados no portal;<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" i18n:domain="plone"> <body> <div metal:define-macro="portlet" tal:define="results python:here.portal_catalog.searchResults(portal_type='Event', sort_on = 'Date', sort_order='reverse', review_state='published')[:5];"> <dl id="portlet-eventos"> <dt class="portletHeader"> <span><a>Últimos eventos</a></span> </dt> <tal:links tal:repeat="obj results"> <dd tal:define="oddrow repeat/obj/odd" tal:attributes="class python:test('portletItem')"> <a href="" class="tile" tal:attributes="href obj/getURL; title obj/Description"> <tal:block replace="structure here/event_icon.gif"/> <span tal:replace="obj/pretty_title_or_id"> titulo_ou_id </span> </a> </dd> </tal:links> <dd class="portletFooter"> <a href="/events">Ver todos os eventos...</a> </dd> </dl> </div> </body> </html> Portlet Links id : portlet_linksdescrição: Porltet que ira listar os 5 últimos links publicados no portal;<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" i18n:domain="plone"> <body> <div metal:define-macro="portlet" tal:define="results python:here.portal_catalog.searchResults(portal_type='Link', sort_on = 'Date', sort_order='reverse', review_state='published')[:5];"> <dl id="portlet-link"> <dt class="portletHeader"> <span><a>Últimos links</a></span> </dt> <tal:links tal:repeat="obj results"> <dd tal:define="oddrow repeat/obj/odd" tal:attributes="class python:test('portletItem')"> <a href="" class="tile" tal:attributes="href obj/getURL; title obj/Description"> <tal:block replace="structure here/linkOpaque.gif"/> <span tal:replace="obj/pretty_title_or_id"> titulo_ou_id </span> </a> </dd> </tal:links> <dd class="portletFooter"> <a href="/links">Ver todos os links...</a> </dd> </dl> </div> </body> </html> Obs: Na raiz do seu plone site, crie uma "pasta esperta" fazendo filtro pelo tipo "Link" com o id links. Porltet documentos id : portlet_documentosdescrição: Porltet que ira listar os 5 últimos documentos publicados no portal;<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" i18n:domain="plone"> <body> <div metal:define-macro="portlet" tal:define="results python:here.portal_catalog.searchResults(portal_type='Document', sort_on = 'Date', sort_order='reverse', review_state='published')[:5];"> <dl id="portlet-documentos"> <dt class="portletHeader"> <span><a>Últimos documentos</a></span> </dt> <tal:links tal:repeat="obj results"> <dd tal:define="oddrow repeat/obj/odd" tal:attributes="class python:test('portletItem')"> <a href="" class="tile" tal:attributes="href obj/getURL; title obj/Description"> <tal:block replace="structure here/document_icon.gif"/> <span tal:replace="obj/pretty_title_or_id"> titulo_ou_id </span> </a> </dd> </tal:links> <dd class="portletFooter"> <a href="/documents">Ver todos os documentos...</a> </dd> </dl> </div> </body> </html> Obs: Na raiz do seu plone site, crie uma "pasta esperta" fazendo filtro pelo tipo "Documento" com o id documents. Porltet notícias id : portlet_noticiasdescrição: Porltet que ira listar as 5 últimas noticias publicados no portal;<html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" i18n:domain="plone"> <body> <div metal:define-macro="portlet" tal:define="results python:here.portal_catalog.searchResults(portal_type='News Item', sort_on = 'Date', sort_order='reverse', review_state='published')[:5];"> <dl id="portlet-noticias"> <dt class="portletHeader"> <span><a>Últimas notícias</a></span> </dt> <tal:links tal:repeat="obj results"> <dd tal:define="oddrow repeat/obj/odd" tal:attributes="class python:test('portletItem')"> <a href="" class="tile" tal:attributes="href obj/getURL; title obj/Description"> <tal:block replace="structure here/document_icon.gif"/> <span tal:replace="obj/pretty_title_or_id"> titulo_ou_id </span> </a> </dd> </tal:links> <dd class="portletFooter"> <a href="/news">Ver todos as notícias...</a> </dd> </dl> </div> </body> </html> Referenciando os Portlets no seu Page Template Neste
passo vamos invocar os nossos Portles na página inicial do portal. Para
isso, acesse a Zmi e edit o page_template "index_html" que você criou
na raiz do seu plone site.<html metal:use-macro="here/main_template/macros/master"> <div metal:fill-slot="content" style="padding:1em;"> <div metal:use-macro="here/portlet_noticias/macros/portlet"> portlet inicial - noticias </div> <div metal:use-macro="here/portlet_eventos/macros/portlet"> portlet inicial - eventos </div> <div metal:use-macro="here/portlet_documentos/macros/portlet"> portlet inicial - documentos </div> <div metal:use-macro="here/portlet_links/macros/portlet"> portlet inicial - links </div> </div> </html> Criando o estilo dos porltets Agora
já podemos visualizar a nossa página inicial, acesse o seu plone site
(Exemplo: http://localhost:8080/meu_site). Crie algumas notícias,
eventos, páginas e links e publique cada item para que ele possa ser
listado na página inicial, mais os seus portlets ainda não tem tamanho
posição definidas na inicial, customize o ploneCustom.css como o
seguinte código:/* <dtml-with base_properties> (do not remove this :) */ /* <dtml-call "REQUEST.set('portal_url', portal_url())"> (not this either :) */ #portlet-documentos, #portlet-link, #portlet-eventos, #portlet-noticias{ width:45%; padding:1em; } #portlet-link, #portlet-noticias{ float:left; } #portlet-eventos, #portlet-documentos{ float:right; } /* </dtml-with> */ Se ocorreu tudo bem até o momento você terá uma visão parecida com essa: Agora ficou simples modificar a sua página inicial, basta adequar o código ao que você deseja...