Februari
13
2006

Smarty Hur: Javascript Debug mall

UPPDATERING: En nedladdningspaket finns här: http://ideamesh.com/file/11/Smarty-Debug-med-Hopfällbar-Variables.html

Här är den modifierade koden, arbeta och redo att gå ..

Här är länken där du kan ladda ner nanotree javascript ...
http://nanotree.sourceforge.net/

Byt ut min variabeln {$ Site.framework_pub} lämpligt sätt så att den javascript och bilder kan laddas korrekt.

Notera även, har jag lagt in ett avsnitt för att hantera användardefinierade debug Vars ... Min debug struktur heter "_user_debug" och "_user_debug_key"

För mer info om hur man ska genomföra det här titta på denna tråd:
http://www.smarty.net/forums/viewtopic.php?p=31241#31241

Annars, om du inte är intresserad, är det säkert att ta bort den delen från mallen. Du kan också ta bort {if} uttalande jag brukade linda mallen var avsnittet.

En annan sak som du kanske vill spela med är hur många tecken matas ut som det värde för debug. Sök efter denna och ändra den andra siffran att ändra Max tecken utgång:debug_print_var: 0: 1000

PS Kan någon räkna ut varför jag får ett utrymme ovanför <h3> i rätt cell?

Hoppas att detta hjälper, jag vet att jag gillar det Le

PS För att få all javascript fungerar är det bara att ändra raden "var mynanopath =" och se till att den pekar på din offentliga nanopath katalogen. Du kan nedför nanotree paketet från http://sourceforge.net/projects/nanotree/

Här är den uppdaterade koden

Kod:
{*
Smarty Custom DHTML Felsöknings mall
author Hielke Hoeve
author Owen Cole <owenc vid ideamesh dot com>
since 2006/02/13 Smarty 2.6.12
package 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, height = 600, ändra storlek, rullningslister = yes");
_smarty_console.document.write ("<html> <head> <title> Smarty felsöknings _" + 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} kant: tunn solid svart, {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 ("* Behövs för att initiera trädet. \ n");
_smarty_console.document.write ("* Och att kalla showTree (Imagepath), för att verkligen visa trädet. \ n");
_smarty_console.document.write ("* Alternativt kan detta göras i ett skriptblock vid botten av sidan. \ n");
_smarty_console.document.write (". * Även om denna metod är något renare \ n");
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("funktionen 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 ("* Called när en användare klickar på en nod. \ n");
_smarty_console.document.write ("*param treeNode den TreeNode föremål som har klickat \ 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 + "bilder \ /folder_closed.gif" \ n ");
_smarty_console.document.write ("var openGif = '" + mynanopath + "bilder \ /folder_open.gif" \ n ");
_smarty_console.document.write ("var pageIcon = '" + mynanopath + "bilder \ /page16×16.gif" \ n ");
_smarty_console.document.write ("var userIcon = '" + mynanopath + "bilder \ /user_16×16.gif" \ n ");
_smarty_console.document.write ("var helpIcon = '" + mynanopath + "bilder \ /help_16×16.gif" \ n ");

{* Skapa basen nod *}
{Tilldela var = motvärdet = 0}
_smarty_console.document.write ("rootNode = new TreeNode ({$ räknare}, 'Smarty Debug', helpIcon," Det här är Debug Tree Den ersätter den klassiska versionen av Smarty-felsökning. '); \ n ");
{$ Räknaren ++}

{* Skapa nod för mall innehåller *}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, 'ingår mallar och konfigurationsfiler (laddningstiden i sekunder):", pageIcon,' ");
_smarty_console.document.write ("<table width = \" 100% \ ">");
{Avsnitt name = mallar loop = $ _ debug_tpls}
_smarty_console.document.write ("<tr bgcolor = {if% templates.index% är ännu} #eeeeee {else} #fafafa {/ if}> <td colspan = 2> <tt> {avsnitt name = strecksatsen loop = $ _debug_tpls [mallar] .depth} &&& {/ avsnitt} <font color = {if $ _debug_tpls [mallar] .type eq "mall"} brown {elseif $ _debug_tpls [mallar] .type eq “insert”}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html|escape:javascript}<\\/font>{if isset ($ _ debug_tpls [mallar] .exec_time)} <font size = -1> <i> ({$ _ debug_tpls [mallar] .exec_time | string_format: ".% 5f"}) {if% templates.index% eq 0} (totalt) {/ if} <\\ / i> <\\ / font> {/ if} <\\ / tt> <\\ / td> <\\ / tr> ");
{Sectionelse}
_smarty_console.document.write ("<tr bgcolor = # eeeeee> <td colspan = 2> <tt> <i> inga mallar ingår <\\ / i> <\\ / tt> <\\ / td> <\\ / tr> ");
{/ Avsnitt}
_smarty_console.document.write ("<\\ / table>");
_smarty_console.document.write ("'); \ n");

_smarty_console.document.write ("rootNode.addChild (node ​​{$ räknare}); \ n");
{$ Räknaren ++}

{* Skapa nod för användar debug variabler *}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, 'användar debug variabler:", new Array (closedGif, openGif)), \ n ");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ räknare}); \ n");
_smarty_console.document.write ("var förälder = node {$ räknare}; \ n");
{$ Räknaren ++}

{* Skapa ordnade noder för användar debug variabler *}
{Avsnitt name = Vars loop = $ _ user_debug}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, '{ldelim} $ {$ _ user_debug_key [VARS]} {rdelim}', [VARS] pageIcon, '{$ _user_debug | @ debug_print_var: 0: 1000 | escape: javascript | escape: javascript} '); \ n ");
_smarty_console.document.write ("parent.addChild (node ​​{$ räknare}); \ n");
{$ Räknaren ++}
{Sectionelse}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}," No User Debug information delad ", HelpIcon); \ n");
_smarty_console.document.write ("parent.addChild (node ​​{$ räknare}); \ n");
{$ Räknaren ++}
{/ Avsnitt}

{* Skapa nod för mallvariabler *}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}," tilldelade mallvariabler: ', new Array (closedGif, openGif)), \ n ");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ räknare}); \ n");
_smarty_console.document.write ("var förälder = node {$ räknare}; \ n");
{$ Räknaren ++}

{* Skapa ordnade noder för mallvariabler *}
{Avsnitt name = Vars loop = $ _ debug_keys}
{If $ _debug_keys [VARS]! = '_user_debug' && $ _debug_keys [VARS]! = '_user_debug_key'}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, '{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 ​​{$ räknare}); \ n");
{$ Räknaren ++}
{/ If}
{Sectionelse}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, 'Inga mallvariabler tilldelade", HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (node ​​{$ räknare}); \ n");
{$ Räknaren ++}
{/ Avsnitt}

{* Skapa nod för smarty config fil variabler *}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}," tilldelade konfigurationsfil variabler (yttre mall omfattning): ", new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (node ​​{$ räknare}); \ n");
_smarty_console.document.write ("var förälder = node {$ räknare}; \ n");
{$ Räknaren ++}

{* Skapa ordnade noder för smarty config fil variabler *}
{Avsnitt name = config_vars loop = $ _ debug_config_keys}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, '{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 ​​{$ räknare}); \ n");
{$ Räknaren ++}
{Sectionelse}
_smarty_console.document.write ("var node {$ räknare} = ny TreeNode ({$ räknare}, 'Inga config variabler tilldelas", HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (node ​​{$ räknare}); \ n");
{$ Räknaren ++}
{/ Avsnitt}

_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 & Användarfelsöknings <\ / h3>");
_smarty_console.document.write ("<h4> Klicka på variabler i trädet för att få innehållet som visas i den högra sidopanelen <\ / 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: ,
postat i Guider , Programmering av Owen

Följ kommentarer via RSS Feed | Lämna en kommentar | Trackback URL

Lämna din kommentar

© 2008 - 2014 - All Rights Reserved - Ideamesh, Inc. 22 frågor. 0,279 sekunder.