Fevereiro
13
2006

Smarty Como: Javascript Template Debug

UPDATE: Um pacote de download está disponível aqui: http://ideamesh.com/file/11/Smarty-Debug-with-Collapsible-Variables.html

Aqui está o código modificado, trabalhando e pronto para ir ..

Aqui está o link onde você pode baixar o javascript nanotree ...
http://nanotree.sourceforge.net/~~V

Substituir minha variável {$ Site.framework_pub} corretamente para que o javascript e as imagens podem ser carregadas corretamente.

Por favor note também, eu adicionei em uma seção para lidar com vars depuração definidos pelo usuário ... Minha estrutura de depuração é chamado '_user_debug' e '_user_debug_key'

Para mais informações sobre como implementar esta olhada neste segmento:
http://www.smarty.net/forums/viewtopic.php?p=31241 # 31241

Caso contrário, se você não estiver interessado, é seguro para remover essa seção do modelo. Você também pode remover a instrução {if} eu usado para embrulhar a seção var modelo.

Outra coisa que você pode querer brincar com a forma como muitos personagens estão de saída como o valor para depuração. Olhe para este e modificar o segundo número para alterar a saída chars max: debug_print_var @: 0:1000

PS Alguém pode descobrir por que eu estou ficando um espaço acima do <h3> na célula certo?

Espero que isso ajude, eu sei que eu gosto Sorrir

PS Para obter todo o JavaScript funcionando corretamente, você só precisa modificar a linha "var mynanopath =" e certifique-se que aponta para o diretório nanopath público. Você pode baixar o pacote de nanotree http://sourceforge.net/projects/nanotree/

Aqui está o código atualizado

Código:
{*
Smarty Template personalizado Debug DHTML
@ Author Hielke Hoeve
@ Author Owen Cole <owenc em ideamesh ponto com>
@ Since 2006/02/13 Smarty 2.6.12
@ Pacote Smarty
@ Filename debug.tpl
*}

{} Assign_debug_info

<SCRIPT Language=javascript>
var mynanopath = "{$ Site.javascript_path} \ / nanotree \ /";

if (self.name == ") {} ldelim
var title = 'Console';
{} Rdelim
else {} ldelim
var title = 'Console_' + self.name;
{} Rdelim
_smarty_console = window.open ("", title.value, "width = 800, altura = 600, resizable, scrollbars = yes");
_smarty_console.document.write ("<html> <head> <title> Debug Smarty Console_" + self.name + "<\ / title> \ n");
_smarty_console.document.write ("<style> \ n");
_smarty_console.document.write ("h3 {preenchimento ldelim}: 5px 5px 5px 5px; margin: 0px 0px 0px 0px; background-color: # cccccc;} {rdelim \ n");
_smarty_console.document.write ("# {width debugtreetable ldelim}: 100%;} {rdelim \ n");
_smarty_console.document.write ("# debugtreetable td fronteira {} ldelim: thin preto sólido; {rdelim} \ n");
_smarty_console.document.write ("# debugtreetextdiv div {} ldelim padding-left: 10px;} {rdelim \ n");
_smarty_console.document.write ("<\ / style> \ n");
_smarty_console.document.write ("<script language=\"Javascript\" src=\"" + + mynanopath "nanotree.js\"> <\ / script> \ n");
_smarty_console.document.write ("<script type=\"text\/javascript\" language=\"JavaScript\"> \ n");
_smarty_console.document.write ("<- \ n");
_smarty_console.document.write ("showRootNode = true; \ n");
_smarty_console.document.write ("sortNodes = 0; \ n");
_smarty_console.document.write ("dragable = false; \ n");
_smarty_console.document.write ("showAllNodesOnStartup = true; \ n");

_smarty_console.document.write ("\ / ** \ n");
_smarty_console.document.write ("* Necessário para inicializar a árvore \ n".);
_smarty_console.document.write ("* E para chamar showtree (ImagePath);. que realmente mostram a árvore de \ n");
_smarty_console.document.write ("* Alternativamente, esta pode ser feito de um bloco de script, na parte inferior da página \ n.");
_smarty_console.document.write ("* Embora este método é um pouco mais limpo. \ n");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("function init () {ldelim} \ n");
_smarty_console.document.write ("container = document.getElementById ('debugtreediv'); \ n");
_smarty_console.document.write ("showtree ('" + mynanopath + "'); \ n");
_smarty_console.document.write ("{rdelim} \ n");

_smarty_console.document.write ("\ / ** \ n");
_smarty_console.document.write ("* Chamado quando um usuário clica em um nó de \ n".);
_smarty_console.document.write ("* @ param TreeNode TreeNode o objeto que foi clicado \ n.");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("função StandardClick (TreeNode) {ldelim} \ n");
_smarty_console.document.write ("var mytext = document.getElementById ('debugtreetextdiv'); \ n");
_smarty_console.document.write ("var param = treeNode.getParam (); \ n");
_smarty_console.document.write ("mytext.innerHTML = param (==") treeNode.getName ():? <h3> '+ treeNode.getName () +' <\ / h3> <div '+ param + " <\ / div> '; \ n ");
_smarty_console.document.write ("{rdelim} \ n");

_smarty_console.document.write ("função nodeEdited (TreeNode) {ldelim} \ n");
_smarty_console.document.write ("{rdelim} \ n");

_smarty_console.document.write ("var closedGif = '" + mynanopath + "images \ / folder_closed.gif'; \ n");
_smarty_console.document.write ("var openGif = '" + mynanopath + "images \ / folder_open.gif'; \ n");
_smarty_console.document.write ("var pageIcon = '" + mynanopath + "images \ / página 16 × 16.gif"; \ n ");
_smarty_console.document.write ("var userIcon = '" + mynanopath + "images \ / user_16 × 16.gif"; \ n ");
_smarty_console.document.write ("var helpIcon = '" + mynanopath + "images \ / help_16 × 16.gif"; \ n ");

{* Create nó base}
{Atribuir var = valor do contador = 0}
_smarty_console.document.write ("rootNode = new TreeNode ({$ contador}, 'Debug Smarty', helpIcon, 'Esta é a Árvore Debug Ele substitui a versão clássica do console de depuração Smarty.'); \ n");
{$ Contador + +}

{* Crie nó para o modelo inclui *}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'incluídos modelos e arquivos de configuração (tempo de carga em segundos):', pageIcon '");
_smarty_console.document.write ("<table width=\"100%\">");
{Nome da seção = laço modelos = $ _debug_tpls}
_smarty_console.document.write ("<tr bgcolor={if %templates.index% é even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {section name = laço travessão = $ _debug_tpls [modelos]. profundidade} &&& {/ section} <cor da fonte = {if $ _debug_tpls [modelos]. tipo eq "template"} {elseif $ marrom _debug_tpls [modelos]. tipo eq isset ($ _debug_tpls [modelos] exec_time.)} <font size=-1> <i> ({$ _debug_tpls [modelos] exec_time | string_format:. ".5% f"}) {if% templates.index% eq 0} (total) {/ if} <\ \ / i> <\ \ / font> {/ if} <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{} Sectionelse
_smarty_console.document.write ("<tr bgcolor=#eeeeee> <td colspan=2> <tt> <i> sem modelos incluídos <\ \ / i> <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{/ Section}
_smarty_console.document.write ("<\ \ / table>");
_smarty_console.document.write (""); \ n ");

_smarty_console.document.write ("rootNode.addChild (nó {$ contador}); \ n");
{$ Contador + +}

{* Crie nó para as variáveis ​​de depuração do usuário *}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'variáveis ​​de depuração do usuário:", new Array (closedGif, openGif)); \ n ");
_smarty_console.document.write ("rootNode.addChild (nó {$ contador}); \ n");
_smarty_console.document.write ("var parent = nó {$ contador}; \ n");
{$ Contador + +}

{* Crie nós filhos para as variáveis ​​de depuração do usuário *}
{Nome da seção = loop = $ vars _user_debug}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, '{ldelim} $ {$ _user_debug_key [VARS]} {rdelim}', pageIcon, '{$ _user_debug [VARS] | @ debug_print_var: 0:1000 | escape: javascript | escape: javascript} '); \ n ");
_smarty_console.document.write ("parent.addChild (nó {$ contador}); \ n");
{$ Contador + +}
{} Sectionelse
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'Sem informação Debug Usuário afectadas», HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (nó {$ contador}); \ n");
{$ Contador + +}
{/ Section}

{* Crie nó * variáveis ​​modelo}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'variáveis ​​de template fixadas:' new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (nó {$ contador}); \ n");
_smarty_console.document.write ("var parent = nó {$ contador}; \ n");
{$ Contador + +}

{* Crie nós filho para variáveis ​​de template *}
{Nome da seção = laço vars = $ _debug_keys}
{If $ _debug_keys [VARS]! = '_user_debug' && $ _debug_keys [VARS]! = '_user_debug_key'}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, '{ldelim} $ {$ _debug_keys [VARS]} {rdelim}', pageIcon, '{$ _debug_vals [VARS] | @ debug_print_var: 0:1000 | escape: javascript | escape: javascript} '); \ n ");
_smarty_console.document.write ("parent.addChild (nó {$ contador}); \ n");
{$ Contador + +}
{/ If}
{} Sectionelse
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'Nenhum variáveis ​​de template fixadas", HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (nó {$ contador}); \ n");
{$ Contador + +}
{/ Section}

{* Crie nó para as variáveis ​​de arquivos de configuração smarty *}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'atribuído as variáveis ​​do arquivo de configuração (escopo modelo externo):", new Array (closedGif, openGif)); \ n ");
_smarty_console.document.write ("rootNode.addChild (nó {$ contador}); \ n");
_smarty_console.document.write ("var parent = nó {$ contador}; \ n");
{$ Contador + +}

{* Crie nós filho para variáveis ​​de arquivos de configuração smarty *}
{Nome da seção = laço config_vars = $ _debug_config_keys}
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, '{ldelim} $ {$ _debug_config_keys [config_vars]} {rdelim}', pageIcon, '{$ _debug_config_vals [config_vars] | @ debug_print_var: 0:1000 | escape: javascript | escape: javascript} '); \ n ");
_smarty_console.document.write ("parent.addChild (nó {$ contador}); \ n");
{$ Contador + +}
{} Sectionelse
_smarty_console.document.write ("nó var {$ contador} = new TreeNode ({$ contador}, 'Nenhum variáveis ​​de configuração atribuídos", HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (nó {$ contador}); \ n");
{$ Contador + +}
{/ Section}

_smarty_console.document.write ("\ / \ / -> \ n");
_smarty_console.document.write ("<\ / script> \ n \ n");
_smarty_console.document.write ("<\ / head> <body onload=\"init()\"> \ n");
_smarty_console.document.write ("<h3> Smarty Debug Console & Usuário <\ / h3>");
_smarty_console.document.write ("Click <h4> em variáveis ​​na árvore para ter seus conteúdos apresentados no painel do lado direito <\ / h4>.");
_smarty_console.document.write ("<table border='0' id='debugtreetable'> <tr>");
_smarty_console.document.write ("valign='top' <td style='width: 250px;'> <div id='debugtreediv'> & <\ / div> <\ / td>");
_smarty_console.document.write ("<td valign='top'> <div id='debugtreetextdiv'> & <\ / td>");
_smarty_console.document.write ("<\ / tr> <\ / table>");
_smarty_console.document.write ("<\ / body> <\ / html>");
_smarty_console.document.close ();
</ SCRIPT>

tags: ,
postou em Guides , programação por Owen

Siga os comentários através do RSS Feed | Deixe um comentário | Trackback URL

Deixe seu comentário

 
© 2008 - 2012 - Todos os Direitos Reservados - Ideamesh, Inc. 22 procedimentos. 0,399 segundo.