Февраль
13
2006

Smarty Как Javascript отладки шаблона

UPDATE: пакет можно загрузить здесь: http://ideamesh.com/file/11/Smarty-Debug-with-Collapsible-Variables.html

Вот модифицированный код, работает и готов к работе ..

Вот ссылка где можно скачать nanotree JavaScript ...
http://nanotree.sourceforge.net/~~V

Замените моей переменная {$} Site.framework_pub соответствующим образом, что JavaScript и изображения могут быть загружены правильно.

Также обратите внимание, я добавил в раздел обрабатывать определенные пользователем переменные отладки ... Моя отладки структура под названием «_user_debug» и «_user_debug_key"

Для получения дополнительной информации о том, как реализовать этот взгляд на эту тему:
http://www.smarty.net/forums/viewtopic.php?p=31241 # 31241

В противном случае, если вас не интересует, что это безопасно, чтобы удалить этот раздел из шаблона. Кроме того, можно удалить, если {} заявление, которое я использовал, чтобы обернуть раздел шаблона обл.

Другая вещь, которую вы можете играть с, сколько символов выводятся в качестве значения для отладки. Посмотрите на это и изменить второй номер, чтобы изменить максимальный выходной символов: @ debug_print_var: 0:1000

PS Можно ли выяснить, почему я получаю пространство над <h3> в правой ячейке?

Надеюсь, это поможет, я знаю, мне нравится Улыбаться

PS Чтобы получить все JavaScript работает правильно вам нужно всего лишь изменить строку "уаг mynanopath =" и убедитесь, что оно указывает на ваш публичный каталог nanopath. Вы можете вниз nanotree пакет http://sourceforge.net/projects/nanotree/

Вот обновленный код

Код:
{*
Smarty пользовательских DHTML отладки шаблона
@ Автор Hielke Hoeve
@ Автор Оуэн Коул <owenc на ideamesh точка com>
@ С 02/13/2006 Smarty 2.6.12
@ Пакет Smarty
@ Имя файла debug.tpl
*}

{} Assign_debug_info

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

если (self.name == ") {} ldelim
VAR название = "Консоль";
{} Rdelim
еще {} ldelim
VAR название = 'консоль_ + self.name;
{} Rdelim
_smarty_console = window.open ("", title.value, "ширина = 800 мм, высота = 600, изменять размеры, полосы прокрутки = да");
_smarty_console.document.write ("<html> <head> <title> Smarty Debug консоль_" + self.name + "<\ / title> \ п");
_smarty_console.document.write ("<style> \ п");
_smarty_console.document.write ("h3 {} ldelim обивка: 5px 5px 5px 5px; края: 0px 0px 0px 0px; фонового цвета: # CCCCCC;} {rdelim \ п");
_smarty_console.document.write ("# {debugtreetable ldelim} Ширина: 100%;} {rdelim \ п");
_smarty_console.document.write ("# debugtreetable TD {} ldelim границы: тонкие черные;} {rdelim \ п");
_smarty_console.document.write ("# debugtreetextdiv дел {} ldelim заполнения левого: 10px;} {rdelim \ п");
_smarty_console.document.write ("<\ / стиль> \ п");
_smarty_console.document.write ("<script language=\"Javascript\" src=\"" + + mynanopath "nanotree.js\"> <\ / сценарий> \ п");
_smarty_console.document.write ("<script type=\"text\/javascript\" language=\"JavaScript\"> \ п");
_smarty_console.document.write ("<- \ п");
_smarty_console.document.write ("showRootNode = true; \ п");
_smarty_console.document.write ("sortNodes = 0, \ п");
_smarty_console.document.write ("dragable = ложь; \ п");
_smarty_console.document.write ("showAllNodesOnStartup = true; \ п");

_smarty_console.document.write ("\ / ** \ п");
_smarty_console.document.write ("*, необходимые для инициализации дерево \ л.");
_smarty_console.document.write ("* И называть showTree (ImagePath). на самом деле показать дерево \ п");
_smarty_console.document.write ("* Кроме того это может быть сделано в блоке сценария в нижней части страницы \ л.");
_smarty_console.document.write ("* Хотя этот метод несколько чистых \ л.");
_smarty_console.document.write ("* \ / \ п");
_smarty_console.document.write ("функции инициализации () {} ldelim \ п");
_smarty_console.document.write ("контейнер = document.getElementById ('debugtreediv'); \ п");
_smarty_console.document.write ("showTree ('" + mynanopath + "'); \ п");
_smarty_console.document.write ("{} rdelim \ п");

_smarty_console.document.write ("\ / ** \ п");
_smarty_console.document.write ("* Вызывается, когда пользователь нажимает на узле \ л.");
_smarty_console.document.write ("* @ параметров TreeNode Объект TreeNode, которые были кнопку \ л.");
_smarty_console.document.write ("* \ / \ п");
_smarty_console.document.write ("функция StandardClick (TreeNode) {} ldelim \ п");
_smarty_console.document.write ("VAR MyText = document.getElementById ('debugtreetextdiv'); \ п");
_smarty_console.document.write ("VAR параметром = treeNode.getParam (); \ п");
_smarty_console.document.write ("mytext.innerHTML = (параметр ==") treeNode.getName ():? <h3> + treeNode.getName () + '<\ / h3> <div> + + параметр " <\ / div> '; \ п ");
_smarty_console.document.write ("{} rdelim \ п");

_smarty_console.document.write ("функция nodeEdited (TreeNode) {} ldelim \ п");
_smarty_console.document.write ("{} rdelim \ п");

_smarty_console.document.write ("VAR closedGif = '" + + mynanopath "образов \ / folder_closed.gif; \ п");
_smarty_console.document.write ("VAR openGif = '" + + mynanopath "образов \ / folder_open.gif; \ п");
_smarty_console.document.write ("VAR pageIcon = '" + + mynanopath "образов \ / стр. 16 × 16.gif", \ п ");
_smarty_console.document.write ("VAR userIcon = '" + + mynanopath "образов \ / user_16 × 16.gif", \ п ");
_smarty_console.document.write ("VAR HelpIcon = '" + + mynanopath "образов \ / help_16 × 16.gif", \ п ");

{* Регистрация * база узлов}
{Assign переменная = значение счетчика = 0}
_smarty_console.document.write ("RootNode = новый TreeNode ({$} счетчик" Smarty Debug, HelpIcon «Это Debug дерево заменяет классическую версию Smarty консоль отладки.); \ п");
{$ Счетчик + +}

{* Создать узел шаблон включает в себя *}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$} счетчик" включен шаблонов и конфигурационных файлов (время загрузки в секундах): ', pageIcon "");
_smarty_console.document.write ("<table width=\"100%\">");
{Название раздела = шаблонов цикл = $ _debug_tpls}
_smarty_console.document.write ("<tr bgcolor={if %templates.index% является even}#eeeeee{else}#fafafa{/if}> <td colspan=2> <tt> {Название раздела = отступ цикл = $ _debug_tpls [Шаблоны]. глубина} &&& {/ раздел} <цвет шрифта = {если $ _debug_tpls [Шаблоны]. типа уравнения "шаблон"} {коричневый ElseIf $ _debug_tpls [Шаблоны]. типа уравнения Исеть ($ _debug_tpls [Шаблоны] exec_time.)} <font size=-1> Ф ({$ _debug_tpls [Шаблоны] exec_time | string_format. "% .5 е"}) {если% templates.index% экв 0} (общий) {/, если} <\ \ / I> <\ \ / FONT> {/, если} <\ \ / TT> <\ \ / TD> <\ \ / TR> ");
{} Sectionelse
_smarty_console.document.write ("<tr bgcolor=#eeeeee> <td colspan=2> <tt> <i> не включены шаблоны <\ \ / I> <\ \ / TT> <\ \ / TD> <\ \ / TR> ");
{/ Раздел}
_smarty_console.document.write ("<\ \ / стол>");
_smarty_console.document.write ("'); \ п");

_smarty_console.document.write ("rootNode.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}

{* Создать узел пользовательские переменные отладки *}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$} счетчик", пользовательские переменные отладки: ', новый Array (closedGif, openGif)); \ п ");
_smarty_console.document.write ("rootNode.addChild (узел {$ счетчик}); \ п");
_smarty_console.document.write ("VAR = родитель узла {$ счетчик} \ п");
{$ Счетчик + +}

{* Создание дочерних узлов пользовательские переменные отладки *}
{Название раздела = переменные цикла = $ _user_debug}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$ счетчик}, {} ldelim $ {$ _user_debug_key [переменные]} {} rdelim, pageIcon" {$ _user_debug [переменные] | @ debug_print_var: 0:1000 | выхода: JavaScript | выхода: JavaScript} '); \ п ");
_smarty_console.document.write ("parent.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}
{} Sectionelse
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$ счетчик}" Нет Информация о пользователе Debug назначена, HelpIcon); \ п ");
_smarty_console.document.write ("parent.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}
{/ Раздел}

{* Создать узел * шаблоны переменных}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$} счетчик", присвоенные переменные шаблона, новый Array (closedGif, openGif)); \ п ");
_smarty_console.document.write ("rootNode.addChild (узел {$ счетчик}); \ п");
_smarty_console.document.write ("VAR = родитель узла {$ счетчик} \ п");
{$ Счетчик + +}

{* Создание дочерних узлов для переменных шаблона *}
{Название раздела = переменные цикла = $ _debug_keys}
{Если $ _debug_keys [переменные]! = && '_user_debug' $ _debug_keys [Переменные!] = '_user_debug_key}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$ счетчик}, {} ldelim $ {$ _debug_keys [переменные]} {} rdelim, pageIcon" {$ _debug_vals [переменные] | @ debug_print_var: 0:1000 | выхода: JavaScript | выхода: JavaScript} '); \ п ");
_smarty_console.document.write ("parent.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}
{/, Если}
{} Sectionelse
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$ счетчик}" Нет переменных шаблона назначены, HelpIcon); \ п ");
_smarty_console.document.write ("parent.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}
{/ Раздел}

{* Создание узла Smarty переменных конфигурационного файла *}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$} счетчик", назначенный файл конфигурации переменных (внешние рамки шаблонов), новый Array (closedGif, openGif)); \ п ");
_smarty_console.document.write ("rootNode.addChild (узел {$ счетчик}); \ п");
_smarty_console.document.write ("VAR = родитель узла {$ счетчик} \ п");
{$ Счетчик + +}

{* Создание дочерних узлов для Smarty переменных конфигурационного файла *}
{Название раздела = config_vars цикл = $ _debug_config_keys}
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$ счетчик}, {} ldelim $ {$ _debug_config_keys [config_vars]} {} rdelim, pageIcon" {$ _debug_config_vals [config_vars] | @ debug_print_var: 0:1000 | выхода: JavaScript | выхода: JavaScript} '); \ п ");
_smarty_console.document.write ("parent.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}
{} Sectionelse
_smarty_console.document.write ("VAR узел {$ счетчик} = новый TreeNode ({$ счетчик}" Нет конфигурации переменных, приписанных », HelpIcon); \ п");
_smarty_console.document.write ("parent.addChild (узел {$ счетчик}); \ п");
{$ Счетчик + +}
{/ Раздел}

_smarty_console.document.write ("\ / \ / -> \ п");
_smarty_console.document.write ("<\ / сценарий> \ п \ п");
_smarty_console.document.write ("<\ / HEAD> <body onload=\"init()\"> \ п");
_smarty_console.document.write ("<h3> Smarty и пользователя консоли отладки <\ / h3>");
_smarty_console.document.write ("<h4> Нажмите на переменные в дерево, чтобы их содержимое отображается в правой боковой панели <\ / 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> <\ / стол>");
_smarty_console.document.write ("<\ / body> <\ / html>");
_smarty_console.document.close ();
</ SCRIPT>

Теги: ,
Отвечали в Руководство , программирование Оуэном

Следуйте комментарии по RSS-канал | Оставить комментарий | Trackback URL

Оставьте комментарий

 
© 2008 - 2012 - Все права защищены - Ideamesh, Inc 22 запросов. 0,772 секунды.