Februari
13
2006

Smarty Hur: Javascript Debug Mall

UPPDATERING: En hämtade paketet finns här: http://ideamesh.com/file/11/Smarty-Debug-with-Collapsible-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 variabel {$ Site.framework_pub} lämpligt sätt så att den javascript och bilder kan laddas korrekt.

Notera även, jag har lagt till i 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 genomför detta titt 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 {om} uttalande jag brukade linda mallen var avsnittet.

En annan sak du kanske vill leka med är hur många tecken som matas ut som värdet för debug. Håll utkik efter detta 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 korrekt behöver du bara ändra raden "var mynanopath =" och se till att den pekar på din offentliga nanopath katalog. Du kan nedför nanotree paketet från http://sourceforge.net/projects/nanotree/

Här är den uppdaterade koden

Kod:
{*
Smarty Custom DHTML Felsökningsmall
@ Author Hielke Hoeve
@ Author Owen Cole <owenc vid ideamesh dot com>
@ Sedan 2006/02/13 Smarty 2.6.12
@ Paket Smarty
@ Filnamn debug.tpl
*}

{Assign_debug_info}

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

if (self.name == ") {ldelim}
var title = 'konsol';
{Rdelim}
else {ldelim}
var title = 'Console_' + self.name;
{Rdelim}
_smarty_console = window.open ("", title.value, "width = 800, height = 600, skalbart, 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; marginal: 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 fast 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). att faktiskt 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");
(". * @ param treeNode den TreeNode föremål som har klickat \ n") _smarty_console.document.write;
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("funktion 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 ("funktion 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 \ / sidan 16 × 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 bas nod *}
{Tilldela var = motvärdet = 0}
_smarty_console.document.write ("rootNode = ny TreeNode ({$ räknare}, 'Smarty Debug', helpIcon," Det här är det Debug Tree Den ersätter den klassiska versionen av Smarty-felsökning. '); \ n ");
{$ Räknare + +}

{* Skapa nod för mall innehåller *}
_smarty_console.document.write ("var nod {$ räknare} = ny TreeNode ({$ räknare}," medföljande mallarna och konfigurationsfiler (last tid 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 even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {avsnitt name = strecksatsen loop = $ _debug_tpls [mallar]. djup} &&& {/ avsnitt} <font color = {if $ _debug_tpls [mallar]. typ eq "mall"} brun {elseif $ _debug_tpls [mallar]. typ 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:. "% .5 f"}) {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 (nod {$ räknare}), \ n");
{$ Räknare + +}

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

{* Skapa ordnade noder för användar debug variabler *}
{Avsnitt name = Vars loop = $ _user_debug}
_smarty_console.document.write ("var nod {$ räknare} = ny TreeNode ({$ räknare}," {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 (nod {$ räknare}), \ n");
{$ Räknare + +}
{Sectionelse}
_smarty_console.document.write ("var nod {$ räknare} = ny TreeNode ({$ räknare}," No User Debug Information delad ", HelpIcon), \ n");
_smarty_console.document.write ("parent.addChild (nod {$ räknare}), \ n");
{$ Räknare + +}
{/ Avsnitt}

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

{* 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 nod {$ 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 (nod {$ räknare}), \ n");
{$ Räknare + +}
{/ If}
{Sectionelse}
_smarty_console.document.write ("var nod {$ räknare} = ny TreeNode ({$ räknare}, 'Inga mallvariabler tilldelade", HelpIcon), \ n ");
_smarty_console.document.write ("parent.addChild (nod {$ räknare}), \ n");
{$ Räknare + +}
{/ Avsnitt}

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

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