Février
13
2006

Smarty Comment: Modèle de débogage JavaScript

MISE À JOUR: Un package de téléchargement est disponible ici: http://ideamesh.com/file/11/Smarty-Debug-with-Collapsible-Variables.html

Voici le code modifié, de travail et prêt à aller ..

Voici le lien où vous pouvez télécharger le javascript nanotree ...
http://nanotree.sourceforge.net/~~V

Remplacer ma variable {} $ Site.framework_pub manière appropriée afin que le javascript et les images peuvent être chargées correctement.

Aussi s'il vous plaît la note, j'ai ajouté une section pour gérer vars débogage définis par l'utilisateur ... Ma structure de débogage est nommé «_user_debug» et «_user_debug_key '

Pour plus d'informations sur la façon de mettre en œuvre ce regard à ce sujet:
http://www.smarty.net/forums/viewtopic.php?p=31241 # 31241

Sinon, si vous n'êtes pas intéressé, il est sûr de supprimer cet article à partir du modèle. Vous pouvez également supprimer l'instruction {if} J'ai utilisé pour envelopper la section var modèle.

Une autre chose que vous pourriez jouer avec est combien de caractères sont de sortie que la valeur pour le débogage. Consulter à cet effet et de modifier le deuxième numéro de modifier la sortie max caractères: @ debug_print_var: 0:1000

PS Quelqu'un peut-il comprendre pourquoi je reçois un espace au-dessus de la <h3> dans la cellule de droite?

Hope this helps, je sais que je l'aime Sourire

PS Pour obtenir tous les javascript fonctionne correctement, vous ne devez modifier la ligne "var mynanopath =" et assurez-vous qu'il pointe vers votre répertoire nanopath public. Vous pouvez en bas de la trousse de nanotree http://sourceforge.net/projects/nanotree/

Voici le code mis à jour

Code:
{*
Smarty Template personnalisé Debug DHTML
@ L'auteur Hielke Hoeve
@ L'auteur Owen Cole <owenc à ideamesh dot com>
@ Depuis 13/02/2006 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, hauteur = 600, redimensionnables, scrollbars = yes");
_smarty_console.document.write ("<title> Debug Smarty 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 marge: noir mince solide; {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 ("* nécessaire pour initialiser l'arbre \ n".);
_smarty_console.document.write ("* Et d'appeler showtree (imagePath);. à réellement montrer l'arbre \ n");
_smarty_console.document.write ("* Sinon cela peut être fait dans un bloc de script au bas de la page \ n".);
_smarty_console.document.write ("* Bien que cette méthode est un peu plus propre \ n".);
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("fonction init () {} ldelim \ n");
_smarty_console.document.write ("conteneur = 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 ("* Appelé lorsque l'utilisateur clique sur un noeud \ n".);
_smarty_console.document.write ("* @ param treeNode l'objet TreeNode qui ont été cliqué \ n".);
_smarty_console.document.write ("* \ / \ n");
_smarty_console.document.write ("fonction 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 ("fonction 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 ");

{* Créer un noeud de base *}
{Assign var = valeur du compteur = 0}
_smarty_console.document.write ("rootNode = new TreeNode ({$ compteur}, 'Debug Smarty', HelpIcon,« C'est l'arbre de débogage Il remplace la version classique de la console de débogage dans Smarty. '); \ n ");
{$ Compteur + +}

{* Crée un nouveau noeud pour le modèle comprend *}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, à« inclure des modèles et des fichiers de configuration (temps de chargement en secondes): «, pageIcon," ");
_smarty_console.document.write ("<table width=\"100%\">");
{Nom de la section = boucle modèles = $ _debug_tpls}
_smarty_console.document.write ("<tr bgcolor={if %templates.index% est even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {section name = tiret loop = $ _debug_tpls [modèles].} &&& profondeur {/ section} <font color = {si $ _debug_tpls [modèles]. type eq "template"} {elseif $ brun _debug_tpls [modèles]. type eq isset ($ _debug_tpls [modèles] exec_time.)} <font size=-1> <i> ({$ _debug_tpls [modèles] exec_time | string_format:. "0,5% f"}) {if% templates.index% eq 0} (total) {/ if} <\ \ / i> <\ \ / font> {/ if} <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{} Sectionelse
_smarty_console.document.write ("<tr bgcolor=#eeeeee> <td colspan=2> <tt> <i> pas de modèles inclus <\ \ / i> <\ \ / tt> <\ \ / td> <\ \ / tr> ");
{/ Section}
_smarty_console.document.write ("<\ \ / table>");
_smarty_console.document.write (""); \ n ");

_smarty_console.document.write ("rootNode.addChild (noeud {$ compteur}); \ n");
{$ Compteur + +}

{* Crée un nouveau noeud pour les variables de débogage utilisateur *}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, 'les variables de débogage utilisateur:', new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (noeud {$ compteur}); \ n");
_smarty_console.document.write ("var parent node = {$ compteur}; \ n");
{$ Compteur + +}

{* Créer des nœuds enfants pour les variables de débogage utilisateur *}
{Nom de la section = vars loop = $ _user_debug}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, {} 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 (noeud {$ compteur}); \ n");
{$ Compteur + +}
{} Sectionelse
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, 'aucune information de débogage d'utilisateur attribué», HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (noeud {$ compteur}); \ n");
{$ Compteur + +}
{/ Section}

{* Crée un nouveau noeud pour le modèle des variables *}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, 'variables de templates assignées:', new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (noeud {$ compteur}); \ n");
_smarty_console.document.write ("var parent node = {$ compteur}; \ n");
{$ Compteur + +}

{* Créer des nœuds enfants pour les variables de templates *}
{Nom de la section = boucle vars = $ _debug_keys}
{If $ _debug_keys [vars]! = && Des _user_debug '$ _debug_keys [vars]! =' _user_debug_key '}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, {} 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 (noeud {$ compteur}); \ n");
{$ Compteur + +}
{/ If}
{} Sectionelse
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, 'Pas de variables de templates assignées», HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (noeud {$ compteur}); \ n");
{$ Compteur + +}
{/ Section}

{* Crée un nouveau noeud de Smarty variables du fichier de configuration *}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, 'affecté les variables des fichiers de configuration (champ d'application de modèle externe):', new Array (closedGif, openGif)); \ n");
_smarty_console.document.write ("rootNode.addChild (noeud {$ compteur}); \ n");
_smarty_console.document.write ("var parent node = {$ compteur}; \ n");
{$ Compteur + +}

{* Créer des nœuds enfants de Smarty variables de configuration *}
{Nom de la section = boucle config_vars = $ _debug_config_keys}
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, {} 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 (noeud {$ compteur}); \ n");
{$ Compteur + +}
{} Sectionelse
_smarty_console.document.write ("noeud var {$ compteur} = new TreeNode ({$ compteur}, 'Pas de variables de configuration assignées», HelpIcon); \ n ");
_smarty_console.document.write ("parent.addChild (noeud {$ compteur}); \ n");
{$ Compteur + +}
{/ 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 & console de débogage utilisateur <\ / h3>");
_smarty_console.document.write ("Cliquez <h4> sur les variables dans l'arbre pour avoir leurs contenus affichés dans le panneau latéral droit <\ / 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: ,
a écrit dans les guides , Programmation par Owen

Suivez les commentaires via le flux RSS | Ajouter un commentaire | Trackback URL

Laissez votre commentaire

 
© 2008 - 2012 - Tous droits réservés - Ideamesh, Inc 22 requêtes. 0,371 secondes.