Maksclub Опубликовано 5 января, 2017 Жалоба Поделиться Опубликовано 5 января, 2017 (изменено) В шаблоне Симплы внизу выводятся закомментированные данные о скорости загрузки данныхПример:https://yadi.sk/i/WSw8tiWp379qyM Как мне их в шаблоне вывести? Изменено 5 января, 2017 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 5 января, 2017 Жалоба Поделиться Опубликовано 5 января, 2017 Нужно передать значение переменной в шаблонитизатор путем $this->design->assign('param', $param); Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 5 января, 2017 Автор Жалоба Поделиться Опубликовано 5 января, 2017 (изменено) Нужно передать значение переменной в шаблонитизатор путем $this->design->assign('param', $param); Мне не помог совет, много вопросов:в какой файл из папки view это воткнуть?где взять значение переменной?как вывести в шаблоны в папке /design/theme/?есть ли другой путь? Например может быть вычислять время загрузки данных может сам Смарти? И будут ли эти числа СИЛЬНО отличаться? То есть цифра, которую Симпла рисует, на какой стадии появляется?Вопросов в общем много... Изменено 5 января, 2017 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 января, 2017 Жалоба Поделиться Опубликовано 5 января, 2017 (изменено) в корне index.php начиная со строки // Отладочная информация идет вывод отладки передавайте значения $exec_time и ф-и memory_get_peak_usage() Изменено 5 января, 2017 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Мне не помог совет, много вопросов:в какой файл из папки view это воткнуть?где взять значение переменной?как вывести в шаблоны в папке /design/theme/?есть ли другой путь? Например может быть вычислять время загрузки данных может сам Смарти? И будут ли эти числа СИЛЬНО отличаться? То есть цифра, которую Симпла рисует, на какой стадии появляется?Вопросов в общем много... Ваша постановка задачи в принципе неверная.Надо ведь подсчитать и вывести, в частности, время работы. Сейчас это делается в индексном PHP-файле В САМОМ КОНЦЕ, когда основная работа проведена.Если это делать при работе Smarty, то это будет происходить В СЕРЕДИНЕ ПРОЦЕССА формирования страницы, а в этот момент НЕИЗВЕСТНО общее время, и можно показать прошедшее время только до текущего момента.Если непременно хочется делать это через Smarty, можно1. пытаться отлавливать как-то момент ближе к концу. Это само по себе не просто, надо копать в Smаrty. И все равно данные будут менее точными, чем сейчас, 2. в индексном файле после содержательной работы сформировать отчет с использованием Smarty и вывести его отдельно и дополнительно. Городить такой огород - искусственное усложнение простого вопроса.3. Использовать в Smarty {php}...{/php}. Самый простой способ. Но точность, скорее всего, будет хуже. И сам способ разработчиками Smarty не рекомендуется. Сейчас все прекрасно работает в index.php. Зачем изобретать велосипед, непонятно.Все указывает на то, что Вам было бы проще затратить часок-другой на изучение основ PHP. Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 6 января, 2017 Автор Жалоба Поделиться Опубликовано 6 января, 2017 (изменено) Ваша постановка задачи в принципе неверная.. Я это сразу и предположил, потому и спросил«И будут ли эти числа СИЛЬНО отличаться? То есть цифра, которую Симпла рисует, на какой стадии появляется?» Сейчас все прекрасно работает в index.php. Зачем изобретать велосипед, непонятно. Да, понял, так и сделаю. У меня просто Бутстрап, просто оберну в пару тегов и выведу.Спасибо большое Изменено 6 января, 2017 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Ваша постановка задачи в принципе неверная.Надо ведь подсчитать и вывести, в частности, время работы. Сейчас это делается в индексном PHP-файле В САМОМ КОНЦЕ, когда основная работа проведена.Если это делать при работе Smarty, то это будет происходить В СЕРЕДИНЕ ПРОЦЕССА формирования страницы, а в этот момент НЕИЗВЕСТНО общее время, и можно показать прошедшее время только до текущего момента.Если непременно хочется делать это через Smarty, можно1. пытаться отлавливать как-то момент ближе к концу. Это само по себе не просто, надо копать в Smаrty. И все равно данные будут менее точными, чем сейчас, 2. в индексном файле после содержательной работы сформировать отчет с использованием Smarty и вывести его отдельно и дополнительно. Городить такой огород - искусственное усложнение простого вопроса.3. Использовать в Smarty {php}...{/php}. Самый простой способ. Но точность, скорее всего, будет хуже. И сам способ разработчиками Smarty не рекомендуется. Сейчас все прекрасно работает в index.php. Зачем изобретать велосипед, непонятно.Все указывает на то, что Вам было бы проще затратить часок-другой на изучение основ PHP.Больно на почерк Корса смахивает. Давно его не слышно. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 как вариант - сделать какую то метку в шаблоне. К примеру [my_counters]Далее в index.php после: $time_start = microtime(true); включаем буферизацию вывода: ob_start(); и в конце получаем буфер и заменяем метку $content = ob_get_contents(); ob_end_clean(); echo str_replace('[my_counters]', 'строка с отладочной информацией' , $content); Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 как вариант - сделать какую то метку в шаблоне. К примеру [my_counters] Далее в index.php после: $time_start = microtime(true); включаем буферизацию вывода: ob_start(); и в конце получаем буфер и заменяем метку $content = ob_get_contents(); ob_end_clean(); echo str_replace('[my_counters]', 'строка с отладочной информацией' , $content); Это усложнение простого стандартного метода.И, кажется, не совсем по вопросу. ТС, насколько можно понять, хотел выводить данные через Smarty, а тут Smarty никак не используется, а предлагается фактически создать маленький дополнительный шаблонизатор добавочно к стандартному. Овчинка выделки не стоит. Если это все ради того, чтобы отладочные данные были не в конце страницы, а в произвольном месте, то проще написать простенький JavaScript или даже ограничиться стилевым оформлением. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 (изменено) Это усложнение простого стандартного метода.И, кажется, не совсем по вопросу. ТС, насколько можно понять, хотел выводить данные через Smarty, а тут Smarty никак не используется, а предлагается фактически создать маленький дополнительный шаблонизатор добавочно к стандартному. Овчинка выделки не стоит. Если это все ради того, чтобы отладочные данные были не в конце страницы, а в произвольном месте, то проще написать простенький JavaScript или даже ограничиться стилевым оформлением.По smarty - я вообще то написал что это как вариант. Шаблонизатором тут никаким и не пахнет.Банальная замена строки. Если есть желание - можно сделать через регулярное выражение и поместить в какой то html тег. Но это как по мне - лишнее Что касается javascript так вот это - явно не лучший вариант. Что бы поймать эти данные придется их оборачивать в какой то html тег с id. Что бы в дальнейшем получить его в js. И исходя из построения страницы, в simpla, этот тег окажется за приделами html и body. Что в свою очередь будет не особо нравится различным валидаторам и поисковым роботам. если уж на то пошло - то лучше передать start_time в smarty и уже там высчитывать нужные данные. Пусть немного не точно но это можно назвать концом выполнения. После этого уже никаких тяжелых действий не выполняется что бы серьезно пошатнуть точность данных. Больно на почерк Корса смахивает. Давно его не слышно. Да. Есть немного.. Изменено 6 января, 2017 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Что касается javascript так вот это - явно не лучший вариант. Что бы поймать эти данные придется их оборачивать в какой то html тег с id. Что бы в дальнейшем получить его в js. И исходя из построения страницы, в simpla, этот тег окажется за приделами html и body. Что в свою очередь будет не особо нравится различным валидаторам и поисковым роботам.У меня работает предельно просто без цитированных выше проблем. 1. в index.tpl добавил <div id="debug_block"> </div> 2. в корневой index.php добавил в конце echo '<script> $(function(){ $("#debug_block").html("'."memory peak usage: ".memory_get_peak_usage()." bytes<BR>"."page generation time: ".$exec_time." seconds".'"); }); </script> '; Если не нравится, что <script>...</script> будет расположен вне <html>...</html>, то можно еще 3. В шаблоне index.tpl убрать в конце теги </body> </html> и добавить их в п.2 в конец. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 (изменено) У меня работает предельно просто без цитированных выше проблем. 1. в index.tpl добавил<div id="debug_block"> </div>2. в корневой index.php добавил в концеecho '<script>$(function(){$("#debug_block").html("'."memory peak usage: ".memory_get_peak_usage()." bytes<BR>"."page generation time: ".$exec_time." seconds".'");});</script>'; Если не нравится, что <script>...</script> будет расположен вне <html>...</html>, то можно еще3. В шаблоне index.tpl убрать в конце теги</body></html>и добавить их в п.2 в конец. Я не писал - что работать не будет. Я писал что там всего одна проблема - это наличие тега за приделами <html>.теги html body head - есть основные (каркасные) и все что за ними или между их - будет считаться ошибкойhttps://codebra.ru/ru/lessons-html/dating/3/2 да это можно решить как в п3. но как по мне - это не практично.К примеру, если это нужно для какого то 1 шаблона и на сайте не один шаблон. Куда проще и универсальней сделать как я писал в посте 8. Данные функции не дают никаких излишних нагрузок и никак не ограничивают возможности Изменено 6 января, 2017 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 да это можно решить как в п3. но как по мне - это не практично.К примеру, если это нужно для какого то 1 шаблона и на сайте не один шаблон. Куда проще и универсальней сделать как я писал в посте 8. Данные функции не дают никаких излишних нагрузок и никак не ограничивают возможности По п.3, если на сайте не один шаблон, то НЕ НАДО в каждом из нескольких шаблонов писать одно и то же окончание </body></html>То есть получается, что шаблон становится проще. Разница, конечно, не велика, но тем не менее формально это проще и практичнее. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Ничем он проще не становится. Становится лишь более раскиданным и привязанным к движку. В общем считайте как хотите. Если думаете так что так лучше - делайте.Я свое предложение высказал и больше спорить и что то доказывать - не хочу. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Ничем он проще не становится. Проще становится тем, что не надо писать в шаблоне </body></html>. Это аналогично тому, как в файлах PHP, например, не обязательно писать закрывающий тег ?>. Его ведь редко кто пишет, несмотря на то, что это можно и выглядело бы более строго и логично... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Проще становится тем, что не надо писать в шаблоне </body></html>. Это аналогично тому, как в файлах PHP, например, не обязательно писать закрывающий тег ?>. Его ведь редко кто пишет, несмотря на то, что это можно и выглядело бы более строго и логично... Kors 100% Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.