Ferramentas Pessoais
Você está aqui: Página Inicial Artigos Criando a pagina de apresentação do portal

Criando a pagina de apresentação do portal


  1. 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.

  2. 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_eventos
    descriçã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_links
    descriçã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_documentos
    descriçã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_noticias
    descriçã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>

  3. 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>


    1. 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:

      imagem-pagina-inicial

      Agora ficou simples modificar a sua página inicial, basta adequar o código ao que você deseja...