underpop

http://underpop.online.fr 2006-12-27  

Arrumando os botões do Shortcut

O módulo de shortcut na versão 1.4 está com um pequeno detalhe faltando. Ao clicar em adicionar página para que ela fique um atalho seu, aparece um form para você definir o título do atalho, contudo os botões de enviar e cancelar estão sem constantes de tradução para eles, neste tutorial vou ensinar e explicar passo a passo de como fazer e de como não fazer.
Mão a obra.
Vamos partir do ponto onde achamos qual o problema e ai vamos desenvolver a solução.
O módulo utiliza template para exibir a tela de adicionar uma url aos seus atalhos o arquivo de template usado é o shortcuts_add.html dentro da pasta de templates do módulo.
Como eu descobri que era este arquivo? Simples, ao adicionar uma url aos meus atalhos meu navegador informa que estou na seguinte página:

http://SITEXOOPS/modules/shortcuts/add.php?Op=Add

Ou seja, dentro do arquivo add.php com uma variável Op de valor Add, ao abrir este arquivo verifiquei que na linha 29 ele fazia referencia a template

$xoopsOption['template_main'] = 'shortcuts_add.html';

Então todo o layout do formulário de adicionar está neste arquivo que por padrão se é template está na pasta templates do módulo.
Ao abrir o arquivo shortcuts_add.html verifiquei a linha 23 com o seguinte conteúdo:

 

Comentando a linha:
Iniciou uma célula de tabela mesclada com a a próxima célula (parâmetro colspan), inseriu um botão do tipo submit que é para enviar o formulário como o nome de go, deu um espaço ( ) inseriu outro botão agora com a função de apagar os valores dos campos deste formulário, reset com nome de cancel e terminou a célula da tabela.
Desta forma os botões não tem value, que representa seu valor ou nome exibido na tela. Então bastaria colocar value=”Enviar” ou “Salvar” no primeiro e value=”Cancelar” ou “Apagar” no segundo?
De certa forma sim e não. Sim se quiser que seu módulo exiba estes textos sempre, mesmo quando for em outro idioma. Podemos qualificar esta solução de programação orientada a gambiarras, mais detalhes em [url=http://desciclo.pedia.ws/wiki/POG]http://desciclo.pedia.ws/wiki/POG[/url] mas vamos fazer com um padrão de qualidade superior?
Certo o que vamos precisar?
Teremos que alterar este arquivo e também o arquivo de tradução do módulo, no caso o main.php dentro da pasta pt_utf8 de language.
Então vamos começar por este arquivo.
Eu criei duas novas linhas no final do arquivo antes do fechamento do php ('?>').

define("_SHORTCUTS_SUBMIT","Salvar");
define("_SHORTCUTS_CANCEL","Cancelar");

Ou seja, duas constantes com nomes de _SHORTCUTS_SUBMIT e _SHORTCUTS_CANCEL, poderia ser o que desejar desde que não repetisse outra já existente. Mas mantive o padrão do criador e até mantive o nome em inglês.
O segundo grupo de aspas no caso o “Salvar” e o “Cancelar” seriam os verdadeiros valores que vão ter os botões.
Certo salvemos o arquivo, um detalhe que eu percebi é que os arquivos do módulo shortcut está em UTF-8 que não permite acentuações, ao traduzir o módulo eu mudei para ISO-8859-1 assim poderia ter acentuações.
Agora voltemos ao arquivo do template.
Como já dito se eu colocar os values no braço não adianta de nada, mas como chamar constantes de tradução dentro do smart?
Podemos usar a tag smart <{$smarty.const.XXX}> onde XXX é o nome da constante de tradução no nosso caso elas são _SHORTCUTS_SUBMIT e _SHORTCUTS_CANCEL.
Agora ficou fácil neh? Quase, tenham cuidado nos padrões HTML dentro da composição da tag smart.
Ou seja, colocaremos

value=<{$smarty.const._SHORTCUTS_SUBMIT }>

Não, pois se a sua constante de tradução for mais de uma palavra exemplo “Enviar Atalho” então o botão só vai exibir Enviar. Mas por que? Porque todo valor em uma tag HTML tem q ter aspas entre ele.
O correto então é:

value=”<{$smarty.const._SHORTCUTS_SUBMIT }>”.


Ufa agora estamos quase lá. Falta ainda o cuidado de não confundir o fechamento da tag smart com a tag do input então o final fica assim

value=”<{$smarty.const._SHORTCUTS_SUBMIT }>”>

Repare mais um fechamento de tag depois das aspas pois ele representa o fim do input.

Agora sim o resultado final da linha 23:

 

E zaz, tá ai.
Com padrão de qualidade "agarantidiu".

Abrax :xt:


Marcadores:



 

Edição de nº 2 do GIMPZINE

Anunciamos o lançamento da Edição de nº 2 do GIMPZINE.- "Vila do Ouro" HQ colorizada no GIMP; - Entrevista com André Milani; - Análise Mats and Frames; - Tutorial sobre Pixel Art e Programação visual. Confira aqui http://www.ogimp.com.br/zine fonte: http://www.ogimp.com.br/modules/news/article.php?storyid=45


Marcadores: