Ir para o conteúdo. | Ir para a navegação

Ferramentas Pessoais
| Home \ Habilitar comentaio para o usuário anônimo no ZOPE  

 

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.

entre via ZMI e localize a aba Security, clique nela. Dentro dela localize o item chamado Reply to item, do lado direito selecione o chekbox do Reply to item referente ao anônimo com na Figura 1security.jpg

 

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.

 

 

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 no 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 código.
 

 

 Já esta funcionando normalmente, só não esta obrigatório o nome do usuário, se quiser continuar, o próximo passo será o nome do usuário obrigatório.
 
Agora vamos adicionar a validação do nome do usuário, voltando mais uma vez para a raiz do site plone através 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:
OBS: Semelhante ao passo anterior

 

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

 

Ações do documento