Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

В шаблоне Симплы внизу выводятся закомментированные данные о скорости загрузки данных

Пример:

https://yadi.sk/i/WSw8tiWp379qyM

 

Как мне их в шаблоне вывести?

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

Нужно передать значение переменной в шаблонитизатор путем $this->design->assign('param', $param);

 

Мне не помог совет, много вопросов:

  • в какой файл из папки view это воткнуть?
  • где взять значение переменной?
  • как вывести в шаблоны в папке /design/theme/?
  • есть ли другой путь? Например может быть вычислять время загрузки данных может сам Смарти? И будут ли эти числа СИЛЬНО отличаться? То есть цифра, которую Симпла рисует, на какой стадии появляется?

Вопросов в общем много...

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

в корне index.php начиная со строки 

// Отладочная информация

идет вывод отладки

 

передавайте значения $exec_time и ф-и memory_get_peak_usage()

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

Мне не помог совет, много вопросов:

  • в какой файл из папки view это воткнуть?
  • где взять значение переменной?
  • как вывести в шаблоны в папке /design/theme/?
  • есть ли другой путь? Например может быть вычислять время загрузки данных может сам Смарти? И будут ли эти числа СИЛЬНО отличаться? То есть цифра, которую Симпла рисует, на какой стадии появляется?

Вопросов в общем много...

 

Ваша постановка задачи в принципе неверная.

Надо ведь подсчитать и вывести, в частности, время работы. Сейчас это делается в индексном PHP-файле В САМОМ КОНЦЕ, когда основная работа проведена.

Если это делать при работе Smarty, то это будет происходить В СЕРЕДИНЕ ПРОЦЕССА формирования страницы, а в этот момент НЕИЗВЕСТНО общее время, и можно показать прошедшее время только до текущего момента.

Если непременно хочется делать это через Smarty, можно

1. пытаться отлавливать как-то момент ближе к концу. Это само по себе не просто, надо копать в Smаrty. И все равно данные будут менее точными, чем сейчас, 

2. в индексном файле после содержательной работы сформировать отчет с использованием Smarty  и вывести его отдельно и  дополнительно. Городить такой огород - искусственное усложнение простого вопроса.

3. Использовать в Smarty {php}...{/php}.  Самый простой способ. Но точность, скорее всего, будет хуже. И сам способ разработчиками Smarty не рекомендуется.

 

Сейчас все прекрасно работает в index.php. Зачем изобретать велосипед, непонятно.

Все указывает на то, что Вам было бы проще затратить часок-другой на изучение основ PHP.

Ссылка на сообщение
Поделиться на другие сайты

Ваша постановка задачи в принципе неверная..

 

Я это сразу и предположил, потому и спросил

«И будут ли эти числа СИЛЬНО отличаться? То есть цифра, которую Симпла рисует, на какой стадии появляется?»

 

 

Сейчас все прекрасно работает в index.php. Зачем изобретать велосипед, непонятно.

 

Да, понял, так и сделаю. У меня просто Бутстрап, просто оберну в пару тегов и выведу.

Спасибо большое :)

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

Ваша постановка задачи в принципе неверная.

Надо ведь подсчитать и вывести, в частности, время работы. Сейчас это делается в индексном PHP-файле В САМОМ КОНЦЕ, когда основная работа проведена.

Если это делать при работе Smarty, то это будет происходить В СЕРЕДИНЕ ПРОЦЕССА формирования страницы, а в этот момент НЕИЗВЕСТНО общее время, и можно показать прошедшее время только до текущего момента.

Если непременно хочется делать это через Smarty, можно

1. пытаться отлавливать как-то момент ближе к концу. Это само по себе не просто, надо копать в Smаrty. И все равно данные будут менее точными, чем сейчас,

2. в индексном файле после содержательной работы сформировать отчет с использованием Smarty и вывести его отдельно и дополнительно. Городить такой огород - искусственное усложнение простого вопроса.

3. Использовать в Smarty {php}...{/php}. Самый простой способ. Но точность, скорее всего, будет хуже. И сам способ разработчиками Smarty не рекомендуется.

 

Сейчас все прекрасно работает в index.php. Зачем изобретать велосипед, непонятно.

Все указывает на то, что Вам было бы проще затратить часок-другой на изучение основ PHP.

Больно на почерк Корса смахивает. Давно его не слышно.
Ссылка на сообщение
Поделиться на другие сайты

как вариант - сделать какую то метку в шаблоне. К примеру [my_counters]



Далее в index.php после:

 

$time_start = microtime(true);

 

включаем буферизацию вывода:

 

ob_start();

 


и в конце получаем буфер и заменяем метку

$content = ob_get_contents();
ob_end_clean();
echo str_replace('[my_counters]', 'строка с отладочной информацией' , $content);
Ссылка на сообщение
Поделиться на другие сайты

 

как вариант - сделать какую то метку в шаблоне. К примеру [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  или даже ограничиться  стилевым оформлением.

Ссылка на сообщение
Поделиться на другие сайты

Это усложнение простого стандартного метода.

И, кажется, не совсем по вопросу. ТС, насколько можно понять, хотел выводить данные через Smarty, а тут Smarty никак не используется, а предлагается фактически создать маленький дополнительный шаблонизатор добавочно к стандартному. Овчинка выделки не стоит.

 

Если это все ради того, чтобы отладочные данные были не в конце страницы, а в произвольном месте, то проще написать простенький JavaScript  или даже ограничиться  стилевым оформлением.

По smarty - я вообще то написал что это как вариант. Шаблонизатором тут никаким и не пахнет.

Банальная замена строки. Если есть желание - можно сделать через регулярное выражение и поместить в какой то html тег. Но это как по мне - лишнее

 

Что касается javascript так вот это - явно не лучший вариант. 

Что бы поймать эти данные придется их оборачивать в  какой то html тег с id. Что бы в дальнейшем получить его в js. 

И исходя из построения страницы, в simpla, этот тег окажется за приделами html и body. Что в свою очередь будет не особо нравится различным валидаторам и поисковым роботам.

 

если уж на то пошло - то лучше передать start_time в smarty и уже там высчитывать нужные данные. Пусть немного не точно но это можно назвать концом выполнения. После этого уже никаких тяжелых действий не выполняется что бы серьезно пошатнуть точность данных.

 

 

 

Больно на почерк Корса смахивает. Давно его не слышно.

 

Да. Есть немного..

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

Что касается 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 в конец.

Ссылка на сообщение
Поделиться на другие сайты

У меня работает предельно просто без цитированных выше проблем.

 

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. Данные функции не дают никаких излишних нагрузок и никак не ограничивают возможности

 

 

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

да это можно решить как в п3. но как по мне - это не практично.

К примеру, если это нужно для какого то 1 шаблона и на сайте не один шаблон. 

Куда проще и универсальней сделать как я писал в посте 8. Данные функции не дают никаких излишних нагрузок и никак не ограничивают возможности

 

По п.3, если на сайте не один шаблон, то НЕ НАДО в каждом из нескольких шаблонов писать одно и то же окончание 

</body>

</html>

То есть получается, что шаблон становится проще. Разница, конечно, не велика, но тем не менее формально это проще и практичнее.

Ссылка на сообщение
Поделиться на другие сайты

Ничем он проще не становится. Становится лишь более раскиданным и привязанным к движку. 

В общем считайте как хотите. Если думаете так что так лучше - делайте.

Я свое предложение высказал и больше спорить и что то доказывать - не хочу. 

Ссылка на сообщение
Поделиться на другие сайты

Ничем он проще не становится.

 

Проще становится тем, что не надо писать в шаблоне </body></html>.

 

Это аналогично тому, как в файлах PHP, например, не обязательно писать закрывающий тег ?>. Его ведь редко кто пишет, несмотря на то, что это можно и выглядело бы более строго и логично...

 

Ссылка на сообщение
Поделиться на другие сайты

Проще становится тем, что не надо писать в шаблоне </body></html>.

 

Это аналогично тому, как в файлах PHP, например, не обязательно писать закрывающий тег ?>. Его ведь редко кто пишет, несмотря на то, что это можно и выглядело бы более строго и логично...

 

Kors 100%
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...