Habilitar comentaio para o usuário anônimo
Esse artigo é bem básico, ajuda a habilitar comentário nas noticias imagens documentos (Objetos do Plones) 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 mão ma massa alias no teclado.
Primeiro va na raiz do site plone pelo qual deseja habilitar o comentário pelo usuário anônimo.
entre via ZMI e localize a aba Security, clique nela
localize o item chamado Reply to item, do lado direito selecione o chekbox do Reply to item o reverente ao anônimo com na Figura 1 abaixo

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 esta mais ou menos na linha inicia na linha 72 e termina na linha 115 o bloco completo deve ser
substituindo do para que ele não solicite nome de usuário e senha.
<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>
Que vai solicitar apena o nome do comentarista para catalogar.
Próximo e ultimo passo.
Vamos customizar um Controller Python Script
volte a raiz do site plone ainda pela ZMI e entre
/portal_skins/plone_form_scripts/discussion_reply
e clique em customize para customizar o Controller Python Script.
Existe dois campos no topo, um chamado Title e o outro Parameter List neste Parameter List deve se incluir uma pequena variável da seguinte forma:
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
OBS: deve se deixar uma linha em braco a baixo deste exemplo feito na linhas acima.
Já esta funcionando normalmente só não esta obrigatorio o nome do usuário, se quiser continuar o próximo passo será o nome do usuário obrigatorio.
Agora vamos adicionar a validação do nome do usuário, voltando mais uma vez para a raiz do site plone a travez da ZMI
portal_skins/plone_form_scripts/validate_talkback
Existe dois campos no topo, um chamado Title e o outro Parameter List neste Parameter List deve se incluir uma pequena variável da seguinte forma:
Creator=None,
OBS: Deve conter um (,) após a palavra None,
e após a 7 linha mais ou menos deixe um espaço em branco do tamanho de uma linha e coloque o seguinte codigo para ser validado:
if not Creator:
state.setError('Creator', 'Please submit a creator.', 'Creator_required') Após o esse bloco também deve se deixar uma espaço em branco do tamanho de uma linha.
Pronto salve e teste e vamos ver se esta tudo ok mesmo qualquer duvida entre em contato muito obrigado.
Thiago M. Figueiredo

