Habilitar comentaio para o usuário anônimo no ZOPE
Esse artigo é bem simples, ajuda a habilitar comentário nas noticias, imagens, documentos, etc.. (Objetos do Plone) para o usuário anônimo, as versões usadas ao fazer este artigo são Plone 2.... a Plone 2.5.1
Vamos para de conversa e por a mão na massa alias no teclado.
Primeiro vá na raiz do site plone pelo qual deseja habilitar o comentário pelo usuário anônimo.

Figura 1
após selecionado vá ate o final da pagina e salve clicando no botão Save Changes.
Agora vamos customizar o discussion_reply_form (Controller Page Template).
Ainda na raiz do site plone pela ZMI acesse o seguinte local portal_skins/plone_forms/discussion_reply_form
Clique no botão customize para customizar o Controller Page Template.
Localize esse bloco de código; ele inicia mais ou menos na linha 72 e termina na linha 115 o bloco completo deve ser substituindo para que ele não solicite autenticação
<input type="hidden" name="Creator" value=""
tal:attributes="value member/getUserName" />
<div class="portalMessage"
tal:condition="isAnon">
<tal:block replace="structure here/info.gif"/>
<p i18n:translate="legend_note_reply_anonymous">
Note: you are not logged in. You may optionally enter your username
and password below. If you don't enter your username and
password below, this comment will be posted as the 'Anonymous User'.
</p>
<div class="field">
<label for="username" i18n:translate="label_name">Name</label>
<input name="username"
id="username"
value="" alt="Username" title="Name"
size="40"
tabindex=""
i18n:attributes="title label_name; alt label_username;"
tal:attributes="tabindex tabindex/next;" />
</div>
<div class="field">
<label for="password" i18n:translate="label_password">Password</label>
<input type="password"
id="password"
name="password"
tabindex=""
value="" alt="Password" title="Password"
size="40"
i18n:attributes="title label_password; alt label_password;"
tal:attributes="tabindex tabindex/next;" />
</div>
</div>
Deve ser substituindo por:
<div class="field"
tal:define="error errors/Creator|nothing;"
tal:attributes="class python:test(error, 'field error', 'field')">
<label for="Creator" i18n:translate="label_name">Name</label>
<span class="fieldRequired" title="Required"
i18n:attributes="title title_required;"
i18n:translate="label_required">(Required)</span>
<div tal:content="error">Validation error output</div>
<input name="Creator"
id="Creator"
value="" alt="Submitter" title="Name"
size="40"
tabindex=""
i18n:attributes="title"
tal:attributes="value request/Creator|nothing;
tabindex tabindex/next;" />
</div> O novo código significa que ele deve solicitar o nome completo para registro no sistema.
Creator=None,
OBS: Deve conter um (,) após a palavra None.
e remova o conteúdo da linha 35
creator = mtool.getAuthenticatedMember().getUserName()
E no mesmo lugar adicione o seguinte bloco de código:
if not Creator: creator = context.portal_membership.getAuthenticatedMember().getUserName() else: creator = Creator
Creator=None,
OBS: Deve conter um (,) após a palavra None,
e após a linha 7, após a linha 7 deixe uma linha em branco e coloque o seguinte código para validadar:
if not Creator:
state.setError('Creator', 'Please submit a creator.', 'Creator_required')
Após o esse bloco também deve se deixar uma linha em branco.
Pronto salve e teste e vamos ver se esta tudo ok, qualquer duvida entre em contato muito obrigado.
Thiago M. Figueiredo

