Febbraio
13
2006

Smarty Procedura: Template Debug Javascript

UPDATE: Un pacchetto di download è disponibile qui: http://ideamesh.com/file/11/Smarty-Debug-with-Collapsible-Variables.html

Ecco il codice modificato, funzionante e pronto ad andare ..

Ecco il link dove è possibile scaricare il codice JavaScript nanotree ...
http://nanotree.sourceforge.net/~~V

Sostituire la mia variabile $ {} Site.framework_pub opportunamente in modo che il javascript e le immagini possono essere caricate correttamente.

Inoltre si prega di notare, ho aggiunto in una sezione per gestire le variabili di debug definiti dall'utente ... La mia struttura di debug si chiama '_user_debug' e '_user_debug_key'

Per maggiori informazioni su come implementare questo un'occhiata a questo thread:
http://www.smarty.net/forums/viewtopic.php?p=31241 # 31241

Altrimenti, se non siete interessati, è sicuro di eliminare quella sezione dal modello. Si potrebbe anche rimuovere il {if} ho usato per avvolgere la sezione var modello.

Un'altra cosa che si potrebbe desiderare di giocare con è quanti caratteri sono in uscita come valore per il debug. Cerca questo e modificare il secondo numero di modificare l'output max caratteri: @ debug_print_var: 0:1000

PS Chiunque può capire perché io sono sempre uno spazio al di sopra della <h3> nella cella giusto?

Spero che questo aiuti, so che mi piace Sorridere

PS Per avere tutte le javascript funziona correttamente è sufficiente modificare la riga "var mynanopath =" e assicurarsi che punti alla directory nanopath pubblico. È possibile verso il basso il pacchetto nanotree da http://sourceforge.net/projects/nanotree/

Ecco il codice aggiornato

Code:
{*
Smarty Template personalizzati DHTML Debug
@ Author Hielke Hoeve
@ Author Owen Cole <owenc a ideamesh dot com>
@ Poiché 2006/02/13 Smarty 2.6.12
@ Pacchetto di Smarty
@ Filename debug.tpl
*}

Assign_debug_info {}

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

if (self.name == ") {} ldelim
var title = 'Console';
Rdelim {}
else {} ldelim
var title = 'Console_' + self.name;
Rdelim {}
_smarty_console (larghezza "", title.value, "= 800, height = 600, ridimensionabili, scrollbars = yes") = window.open;
_smarty_console.document.write ("<html> <title> Debug Smarty Console_" self.name + + "<\ / title> \ n");
_smarty_console.document.write ("<style> \ n");
_smarty_console.document.write ("ldelim} h3 {padding: 5px 5px 5px 5px; margin: 0px 0px 0px 0px; background-color: # CCCCCC; rdelim {} \ n");
_smarty_console.document.write ("# debugtreetable ldelim} {width: 100%; rdelim {} \ n");
_smarty_console.document.write ("# debugtreetable td ldelim} {border: thin nero solido; rdelim {} \ n");
_smarty_console.document.write ("div # debugtreetextdiv 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 ("* necessari per inizializzare l'albero. \ n");
_smarty_console.document.write ("* E per chiamare showtree (ImagePath). per mostrare in realtà l'albero \ n");
_smarty_console.document.write ("* alternativa questo può essere fatto in un blocco di script nella parte inferiore della pagina \ n.");
_smarty_console.document.write ("* Anche se questo metodo è un po 'più pulita. \ n");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("la funzione init () {} ldelim \ n");
_smarty_console.document.write ("contenitore = 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 ("* Chiamato quando un utente fa clic su un nodo \ n.");
_smarty_console.document.write ("* @ param TreeNode l'oggetto TreeNode che hanno fatto clic. \ n");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("funzione 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 ("funzione 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 \ / pagina 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");

{* Crea il nodo di base *}
Assegnare {var = valore del contatore = 0}
_smarty_console.document.write ("rootNode = new TreeNode ({$ contatore} 'Debug Smarty',, helpIcon, 'Questo è l'albero Debug Essa sostituisce la versione classica della console Debug Smarty.'); \ n");
{$ Contatore + +}

{* Crea il nodo per il modello include *}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, 'inclusi i modelli e file di configurazione (tempo di caricamento in secondi):', pageIcon, '");
_smarty_console.document.write ("<table width=\"100%\">");
{Section name = modelli loop = $ _debug_tpls}
_smarty_console.document.write ("<tr bgcolor={if %templates.index% è even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {section name = trattino loop = $ _debug_tpls. profondità} &&& [templates] {/ section} <color font = {if $ _debug_tpls [modelli]. tipo eq "template" brown} {elseif $ _debug_tpls [modelli]. tipo di eq isset ($ _debug_tpls [template] exec_time.)} <font size=-1> <i> ({$ _debug_tpls [template] exec_time | string_format: ". 0,5% f"}) {if% eq% templates.index 0} (totale) {/ if} <\ \ / i> <\ \ / font> {/ if} <\ \ / tt> <\ \ / td> <\ \ / tr> ");
Sectionelse {}
_smarty_console.document.write ("<tr bgcolor=#eeeeee> <td colspan=2> <tt> <i> nessun modello incluso <\ \ / i> <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{/ Section}
_smarty_console.document.write ("<\ \ / table>");
_smarty_console.document.write ("'); \ n");

_smarty_console.document.write ("rootNode.addChild (node ​​{$ contatore}); \ n");
{$ Contatore + +}

{* Crea il nodo per le variabili di debug utente *}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({} $ contatore," le variabili di debug utente: ', new Array (closedGif, openGif)) \ n ");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ contatore}); \ n");
_smarty_console.document.write ("var nodo padre = {$ contatore;} \ n");
{$ Contatore + +}

{* Creazione di nodi figlio per le variabili di debug utente *}
{Section name = vars loop = $ _user_debug}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, '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 (node ​​{$ contatore}); \ n");
{$ Contatore + +}
Sectionelse {}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, 'No Information Debug User assegnato', HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ contatore}); \ n");
{$ Contatore + +}
{/ Section}

{* Crea nodo * template variabili}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, 'variabili assegnate al template:', new Array (closedGif, openGif)) \ n");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ contatore}); \ n");
_smarty_console.document.write ("var nodo padre = {$ contatore;} \ n");
{$ Contatore + +}

{* Creazione di nodi figlio per le variabili di template *}
{Section name = vars loop = $ _debug_keys}
{If $ _debug_keys [vars]! = 'Le _user_debug' && $ _debug_keys [vars]! = '_user_debug_key'}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, '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 (node ​​{$ contatore}); \ n");
{$ Contatore + +}
{/ If}
Sectionelse {}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, 'Non ci sono variabili assegnate al template', HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ contatore}); \ n");
{$ Contatore + +}
{/ Section}

{* Crea il nodo per le variabili smarty file di configurazione *}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, 'assegnato variabili dei file di configurazione (campo di applicazione modello esterno):«, new Array (closedGif, openGif)) \ n ");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ contatore}); \ n");
_smarty_console.document.write ("var nodo padre = {$ contatore;} \ n");
{$ Contatore + +}

{* Creazione di nodi figlio per le variabili smarty file di configurazione *}
{Section name = config_vars loop = $ _debug_config_keys}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, '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 (node ​​{$ contatore}); \ n");
{$ Contatore + +}
Sectionelse {}
_smarty_console.document.write ("nodo var {$ contatore} = new TreeNode ({$ contatore}, 'Non ci sono le variabili di configurazione', HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ contatore}); \ n");
{$ Contatore + +}
{/ 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 utente <\ / h3>");
_smarty_console.document.write ("Click <h4> sulle variabili nella struttura di avere i loro contenuti visualizzati nel pannello di destra <\ / 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: ,
postato in Guide , Programmazione da Owen

Seguire i commenti tramite il RSS Feed | Lascia un commento | Trackback URL

Lascia il tuo commento

 
© 2008 - 2012 - Tutti i diritti riservati - Ideamesh, Inc. 22 queries. 1.159 secondo.