Februar
13
2006

Smarty Sådan gør du: Javascript Debug Skabelon

UPDATE: En download-pakken er tilgængelig her: http://ideamesh.com/file/11/Smarty-Debug-with-Collapsible-Variables.html

Her er den modificerede kode, arbejde og klar til at gå ..

Her er linket, hvor du kan downloade nanotree javascript ...
http://nanotree.sourceforge.net/~~V

Erstat mit variabel {$ Site.framework_pub} passende, således at JavaScript og billeder kan indlæses korrekt.

Vær desuden opmærksom på, har jeg tilføjet en sektion til at håndtere brugerdefinerede debug Vars ... Min debug struktur hedder '_user_debug' og '_user_debug_key'

For mere info om hvordan du implementerer denne kig på denne tråd:
http://www.smarty.net/forums/viewtopic.php?p=31241 # 31241

Ellers, hvis du ikke er interesseret, er det sikkert at fjerne det afsnit fra skabelonen. Du kan også fjerne {if} redegørelse Jeg plejede at pakke den skabelon, var afsnittet.

En anden ting du måske ønsker at spille med, er, hvor mange tegn er output som værdien for debug. Kig efter dette og ændre andet nummer for at ændre max tegn output: @ debug_print_var: 0:1000

PS Kan nogen finde ud af hvorfor jeg får en plads over <h3> i den rigtige celle?

Hope this helps, jeg ved, jeg kan lide det Smil

PS For at få al den javascript virker korrekt behøver du kun at ændre linjen "var mynanopath =", og sørg for at det peger på din offentlige nanopath mappe. De kan ned nanotree pakke fra http://sourceforge.net/projects/nanotree/

Her er den opdaterede kode

Code:
{*
Smarty Brugerdefineret DHTML Debug Skabelon
@ Forfatter Hielke Hoeve
@ Forfatter Owen Cole <owenc på ideamesh dot com>
@ Siden 2006/02/13 Smarty 2.6.12
@ Pakke Smarty
@ Filnavn 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, højde = 600, resizable og 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} bredde: 100%; {rdelim} \ n");
_smarty_console.document.write ("# debugtreetable td {ldelim} kant: tynd solid black; {rdelim} \ n");
_smarty_console.document.write ("# debugtreetextdiv div {ldelim} padding-venstre: 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 ("* er nødvendig for at initialisere træet \ n.");
_smarty_console.document.write ("* Og at kalde showTree (ImagePath). til rent faktisk at vise træet \ n");
_smarty_console.document.write ("* Alternativt kan dette gøres i en script blok ved bunden af ​​siden \ n.");
_smarty_console.document.write ("* Selv om denne metode er noget renere \ n.");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("-funktionen init () {ldelim} \ n");
_smarty_console.document.write ("beholder = 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 ("* Kaldes, når en bruger klikker på en node. \ n");
_smarty_console.document.write ("* @ param treeNode den TreeNode objekt, der er blevet klikket på. \ n");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("-funktionen 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 ("-funktionen 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 \ / page16 × 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 ");

{* Opret basen node *}
{Tildele var = counter = 0}
_smarty_console.document.write ("rootNode = new TreeNode ({$ counter}, 'Smarty Debug', helpIcon, 'Dette er den Debug Tree Det erstatter den klassiske version af Smarty Debug Console.'); \ n");
{$ Counter + +}

{* Opret node til skabelon inkluderer *}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'inkluderet skabeloner og config filer (load tid i sekunder):', pageIcon, '");
_smarty_console.document.write ("<table width=\"100%\">");
{Afsnit name = templates loop = $ _debug_tpls}
_smarty_console.document.write ("<tr bgcolor={if %templates.index% er even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {afsnittet name = led loop = $ _debug_tpls [skabeloner]. dybde} &&& {/ section} <font color = {Hvis $ _debug_tpls [skabeloner]. typen eq "skabelon"} brun {elseif $ _debug_tpls [skabeloner]. typen eq isset ($ _debug_tpls [skabeloner] exec_time.)} <font size=-1> <i> ({$ _debug_tpls [skabeloner] exec_time | string_format: ".% 0,5 f"}) {if% templates.index% eq 0} (i alt) {/ if} <\ \ / i> <\ \ / font> {/ if} <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{Sectionelse}
_smarty_console.document.write ("<tr bgcolor=#eeeeee> <td colspan=2> <tt> <i> ingen skabeloner inkluderet <\ \ / i> <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{/ Sektion}
_smarty_console.document.write ("<\ \ / table>");
_smarty_console.document.write ("'); \ n");

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

{* Opret node til bruger debug variabler *}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'bruger debug variabler:', new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ counter}) \ n");
_smarty_console.document.write ("var forælder = node {$ counter}; \ n");
{$ Counter + +}

{* Oprette barn knudepunkter for bruger debug variable *}
{Afsnit name = variable loop = $ _user_debug}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, '{ldelim} $ {$ _user_debug_key [variable]} {rdelim}', pageIcon, '{$ _user_debug [variable] | @ debug_print_var: 0:1000 | escape: javascript | escape: javascript} '); \ n ");
_smarty_console.document.write ("parent.addChild (node ​​{$ counter}) \ n");
{$ Counter + +}
{Sectionelse}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'No User Debug Information tildelt', HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ counter}) \ n");
{$ Counter + +}
{/ Sektion}

{* Opret node til skabelon variabler *}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'tildelte skabelon variabler:', new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ counter}) \ n");
_smarty_console.document.write ("var forælder = node {$ counter}; \ n");
{$ Counter + +}

{* Opret barn noder for Skabelon variabler *}
{Afsnit name = variable loop = $ _debug_keys}
{If $ _debug_keys [variable]! = 'Der _user_debug' && $ _debug_keys [variable]! = '_user_debug_key'}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, '{ldelim} $ {$ _debug_keys [variable]} {rdelim}', pageIcon, '{$ _debug_vals [variable] | @ debug_print_var: 0:1000 | escape: javascript | escape: javascript} '); \ n ");
_smarty_console.document.write ("parent.addChild (node ​​{$ counter}) \ n");
{$ Counter + +}
{/ If}
{Sectionelse}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'Ingen skabelon variabler tildelt', HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ counter}) \ n");
{$ Counter + +}
{/ Sektion}

{* Opret node til Smarty konfigurationsfil variabler *}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'tildelte config file variabler (ydre skabelon anvendelsesområde):', new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ counter}) \ n");
_smarty_console.document.write ("var forælder = node {$ counter}; \ n");
{$ Counter + +}

{* Opret barn knudepunkter for Smarty konfigurationsfil variabler *}
{Afsnit name = config_vars loop = $ _debug_config_keys}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, '{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 ​​{$ counter}) \ n");
{$ Counter + +}
{Sectionelse}
_smarty_console.document.write ("var node {$ counter} = new TreeNode ({$ counter}, 'Ingen config-variablerne tildelt', HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ counter}) \ n");
{$ Counter + +}
{/ Sektion}

_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 & Bruger Debug konsol <\ / h3>");
_smarty_console.document.write ("<h4> Klik på variabler i træet for at få deres indhold, der vises i højre side panel <\ / h4>.");
_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: ,
udstationeret i Guides , Programmering af Owen

Følg kommentarer via RSS Feed | Leave a comment | Trackback URL

Efterlad din kommentar

© 2008 - 2012 - All Rights Reserved - Ideamesh, Inc. 22 forespørgsler. 0,555 sekunder.