Febbraio
13
2006

Smarty Procedura: Javascript Debug Template

AGGIORNAMENTO: 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 nanotree javascript ...
http://nanotree.sourceforge.net/

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

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

Per ulteriori informazioni su come implementare questo sguardo a questa discussione:
http://www.smarty.net/forums/viewtopic.php?p=31241 # 31241

In caso contrario, se non siete interessati, è possibile rimuovere tale sezione dal modello. Si potrebbe anche rimuovere l'istruzione {if} ho usato per avvolgere la sezione del modello var.

Un'altra cosa che si potrebbe desiderare di giocare è quanti caratteri sono uscita come valore per il debug. Cercare questo e modificare il secondo numero di modificare la massima carbonizza uscita: @ debug_print_var: 0:1000

PS Qualcuno può capire perché sto ottenendo uno spazio sopra la <h3> nella cella di destra?

Spero che questo aiuti, so che mi piace Sorriso

PS Per ottenere tutto il javascript funziona correttamente è sufficiente modificare la riga "var mynanopath =" e fare in modo che punti alla directory nanopath pubblico. Puoi giù il pacchetto nanotree da http://sourceforge.net/projects/nanotree/

Ecco il codice aggiornato

Codice:
{*
Smarty Template personalizzati DHTML Debug
@ Autore Hielke Hoeve
@ Autore Owen Cole <owenc a ideamesh dot com>
@ Dal 2006/02/13 Smarty 2.6.12
@ Pacchetto Smarty
@ Filename debug.tpl
*}

{Assign_debug_info}

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

if (self.name == ") {} ldelim
title var = 'Console';
{Rdelim}
else {ldelim}
title var = + self.name 'Console_';
{Rdelim}
_smarty_console = window.open ("title.value", "width = 800, height = 600, resizable, scrollbars = yes");
_smarty_console.document.write ("<html> <head> <title> Smarty Debug Console_" + self.name + "<\ / title> \ n");
_smarty_console.document.write ("<style> \ n");
_smarty_console.document.write ("h3 {} ldelim 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 solid black;} {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 (". * Necessario per inizializzare l'albero \ n");
_smarty_console.document.write ("* E per chiamare showtree (imagePath). mostrare effettivamente la struttura \ n");
_smarty_console.document.write ("* In alternativa questo può essere fatto in un blocco di script nella parte inferiore della pagina \ n.");
_smarty_console.document.write (". * Anche se questo metodo è sicuramente più pulito \ n");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("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.");
(". * @ param TreeNode l'oggetto TreeNode che sono stati cliccato \ n") _smarty_console.document.write;
_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 + "immagini \ / help_16 × 16.gif'; \ n");

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

{* Creare nodo per il modello include *}
_smarty_console.document.write ("node var {$ contatore} = nuovo TreeNode ({$ contatore}, 'inclusi i modelli e file di configurazione (tempo di caricamento in secondi):', pageIcon," ");
_smarty_console.document.write ("<table width=\"100%\">");
{Nome della sezione = templates loop = $ _debug_tpls}
_smarty_console.document.write ("<tr bgcolor={if %templates.index% è even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {nome della sezione = anello trattino = $ _debug_tpls [modelli]. profondità} &&& {/ section} <font color = {if $ _debug_tpls [modelli]. tipo eq "template"} brown {elseif $ _debug_tpls [modelli]. tipo eq “insert”}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html|escape:javascript}<\\/font>{if isset (. $ _debug_tpls [modelli] exec_time)} <font size=-1> <i> ({$ _debug_tpls [modelli] exec_time | string_format:. "% .5 f"}) {if% templates.index% eq 0} (totale) {/ if} <\ \ / i> <\ \ / font> {/ if} <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{Sectionelse}
_smarty_console.document.write ("<tr bgcolor=#eeeeee> <td colspan=2> <tt> <i> presenti modelli inclusi <\ \ / i> <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{/ Sezione}
_smarty_console.document.write ("<\ \ / table>");
_smarty_console.document.write ("'); \ n");

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

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

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

{* Creare nodo per le variabili di template *}
_smarty_console.document.write ("node var {$ contatore} = nuovo TreeNode ({$ contatore}," le variabili dei template: ', new Array (closedGif, openGif)) \ n ");
_smarty_console.document.write ("rootNode.addChild (nodo {$ contatore}); \ n");
_smarty_console.document.write ("var = parent node {$ contatore}; \ n");
{$ Contatore + +}

{* Creazione di nodi figlio per le variabili di template *}
{Nome della sezione = anello vars = $ _debug_keys}
{If $ _debug_keys [vars]! = '_user_debug' && $ _debug_keys [Vars]! = '_user_debug_key'}
_smarty_console.document.write ("node var {$ contatore} = nuovo 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 (nodo {$ contatore}); \ n");
{$ Contatore + +}
{/ If}
{Sectionelse}
_smarty_console.document.write ("node var {$ contatore} = nuovo TreeNode ({$ contatore}, 'Non ci sono le variabili dei template', HelpIcon), \ n");
_smarty_console.document.write ("parent.addChild (nodo {$ contatore}); \ n");
{$ Contatore + +}
{/ Sezione}

{* Creare nodo per le variabili dei file di configurazione smarty *}
_smarty_console.document.write ("node var {$ contatore} = nuovo TreeNode ({$ contatore}," variabili dei file di configurazione assegnati (ambito template esterno): ', new Array (closedGif, openGif)) \ n ");
_smarty_console.document.write ("rootNode.addChild (nodo {$ contatore}); \ n");
_smarty_console.document.write ("var = parent node {$ contatore}; \ n");
{$ Contatore + +}

{* Creazione di nodi figlio per le variabili dei file di configurazione smarty *}
{Nome della sezione = config_vars loop = $ _debug_config_keys}
_smarty_console.document.write ("node var {$ contatore} = nuovo 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 (nodo {$ contatore}); \ n");
{$ Contatore + +}
{Sectionelse}
_smarty_console.document.write ("node var {$ contatore} = nuovo TreeNode ({$ contatore}, 'Non ci sono le variabili di configurazione", HelpIcon), \ n ");
_smarty_console.document.write ("parent.addChild (nodo {$ contatore}); \ n");
{$ Contatore + +}
{/ Sezione}

_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 & User console debug <\ / h3>");
(". <h4> Clicca sulle variabili nella struttura per avere i loro contenuti visualizzati nel pannello di destra <\ / h4>") _smarty_console.document.write;
_smarty_console.document.write ("<table border='0' id='debugtreetable'> <tr>");
_smarty_console.document.write ("<td valign='top' 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: ,
posted in Guide , Programmazione da Owen

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

Lascia il tuo commento

© 2008 - 2014 - Tutti i diritti riservati - Ideamesh, Inc. 22 query. 0,249 secondi.