Twitter Plugin
10/03/2010 00:00
0
Pessoal, como posso fazer o twitterService ficar disponível em toda minha aplicação de uma vez? Às vezes quando troco de controller, não funciona, ai tenho que declarar no controller o twitterService. Às vezes, mesmo declarado, se mudo acesso uma url, por exemplo, por javascript, não funciona. Um saco.
Tem como iniciar a aplicação e fazer ele ficar disponível para todos os controllers?

At,
Paulo
Tags: Grails


0
Olha uma coisa bizarra:

${twitterService.loggedIn}
<g:if test=&quot;${twitterService}&quot;>
<twitter:user userId='${username}'>
Logado no Twitter: ${it.name}<br />
<twitter:profileImage user='${it}' alt='${it.screenName}' />
</twitter:user>
<g:link controller=&quot;twitter&quot; action=&quot;logout&quot;>Logout</g:link>
</g:if>

O ${twitterService} do <g:if> retorna true, tanto que mostra meu usuário e minha foto.
O ${twitterService.loggedIn} acima do <g:if> retorna false :/

Alguém sabe como resolver isso? A merda que tá dando é que, quando faço logout do twitter, ele ainda entende a existencia do ${twitterService}, entra no <g:if> e dá erro pq ele não acha o userId. Ai tenho que trocar o test do if para ${twitterService.loggedIn}. Ai ele retorn false e mostra o form de login. Quando logo, continua retornando false e mostrando o form direto. Ai eu tenho que mudar para o ${twitterService}

Vai entender ....
10/03/2010 00:00


0
Não entendi: você quer que haja um atributo twitterservice em todas as suas classes de controle?
Se for o caso, você pode instalar os templates na sua aplicação (grails intall-templates) e em seguida editar o template que gera os seus controladores incluindo este atributo, o que resolveria o seu problema. (é isto mesmo? <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> )


0
Bem, não é muito isso não.
Com o plugin do twitter, precisamos colocar nos controllers onde queremos recuperar dados do usuário do twitter um &quot;def twitterService&quot;.
O meu problema é que, na view do controller, funciona na boa mas eu estou usando o sitemesh pois eu tenho 2 ou 3 formatos de layouts padrão e, a informação do usuário fica nesse decorated layout. Ou seja, na view funciona mas no decorated layout onde essa view vai entrar, não.

Eu achei um texto no stackoverflow sugerindo criar um arquivo securityFilters.groovy no conf e fazer algo assim:

class SecurityFilters {

def filters = {
populateCurrentUser(controller: '*', action: '*') {
before = {
def twitterService
}
}
}

}

Mas não funcionou ainda, removi o def twitterService dos controllers e ainda não funcionou.
11/03/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto