Criando um portlet com os usuários on-line
Neste artigo explicarei como construir um portlet que listará os usuários que estão on-lines no seu portal.
1 - Dependências
Para facilitar o nosso desenvolvimento, vamos instalar o produto Who Online,
Com este produto podemos criar o nosso portlet em poucos minutos. Caso
nunca tenha instalado um produto no Zope, sugiro que de uma olhada no
artigo Instalndo produtos no Zope, para dar continuidade no desenvolvimento.
2 - Criando o Portlet
Partindo da premissa que você esteja usando o layout padrão do plone, crie na sua ZMI um page template com o nome portle_online. O código inicial do nosso portlet vai se este:
<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">
<dl class="portlet">
<dt class="portletHeader">
<span class="portletTopLeft"></span>
<span>Usuários On-line</span>
<span class="portletTopRight"></span>
</dt>
<dd class="portletItem">
aqui vai a busca dos usuarios online
</dd>
<dd class="portletFooter">
</dd>
</dl>
</div>
</body>
</html>
Resultado:

Incluido o portlet na página
Para incluir o portlet no portal, basta acessar a raiz do seu plone site na ZMI, acessar a aba Properties:

e incluir a seguinte linha no left_slots ou no right_slots de acodo com a imagem acima:
here/portlet_online/macros/portlet
3 - Buscando os usuários on-line
Com o produto ja instalado, iremos invocar a sua chamada ele dentro do nosso portlet.
<div tal:repeat="user here/who_online/getActiveMembers">
<span tal:content="user"></span>
</div>
Resultado:

Mais para deixar o nosso portlet com uma cara mais agradavel iremos incluir uma imagem, inclua está linha no seu código:
<tal:block replace="structure here/user.gif"/>
Resultado:

Código final do portlet:
<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">
<dl class="portlet">
<dt class="portletHeader">
<span class="portletTopLeft"></span>
<span>Usuários On-line</span>
<span class="portletTopRight"></span>
</dt>
<dd class="portletItem">
<div tal:repeat="user here/who_online/getActiveMembers">
<tal:block replace="structure here/user.gif"/>
<span tal:content="user"></span>
</div>
</dd>
<dd class="portletFooter">
</dd>
</dl>
</div>
</body>
</html>
Pronto, o portlet já foi criado e está disponivel no seu plone site.