1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Как вывести Timing, Memory, DB Queries?

Тема в разделе "Основные вопросы по XenForo", создана пользователем deity, 28.10.2010.

Загрузка
  1. deity

    deity Read only

    Регистрация:
    07.10.10
    Сообщения:
    136
    Симпатии:
    87
    Версия XF:
    1.1.0 Final
    Устанавливая счетчики, заметил в шаблоне footer возможность вывести эту информацию (Timing, Memory, DB Queries). Но насколько я понял, она даже не генерируется, если форум не переведен в debug mode. Возможно ли это сделать, не переводя форум в режим отладки? Было бы полезно при оптимизации настроек сервера, для диагностики возможных проблем/перегрузок.
     
  2. g0rn

    g0rn Местный

    Регистрация:
    03.10.10
    Сообщения:
    107
    Симпатии:
    148
    Можно включить debug mode только для определённых ip адресов, например (в config.php проверка $_SERVER['REMOTE_ADDR'] и включение дебага при необходимости).
     
  3. Макар

    Макар Вопрошатель

    Регистрация:
    07.10.10
    Сообщения:
    216
    Симпатии:
    73
    так а если

    Код:
    		<xen:if is="{$debugMode}">
    				<xen:if hascontent="true">
    					<dl class="pairsInline">
    					<xen:contentcheck>
    						<xen:if is="{$page_time}"><dt>{xen:phrase timing}:</dt> <dd><a href="{$debug_url}">{xen:phrase x_seconds, 'time={xen:number $page_time, 4}'}</a></dd></xen:if>
    						<xen:if is="{$memory_usage}"><dt>{xen:phrase memory}:</dt> <dd>{xen:phrase x_mb, 'memory={xen:number {xen:calc "{$memory_usage} / 1024 / 1024"}, 3}'}</dd></xen:if>
    						<xen:if is="{$db_queries}"><dt>{xen:phrase db_queries}:</dt> <dd>{xen:number {$db_queries}}</dd></xen:if>
    					</xen:contentcheck>
    					</dl>
    				</xen:if>
    			</xen:if>
    в этой части заменить условие вывода ?

    проверять не дебаг режим , а юзер админ или нет

    или выводить всем
    выводить только память время и запросы , но не выводить ошибки
     
  4. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    есть у меня подозрение, что недостаточно будет заменить только условие. вполне вероятно (а я бы именно так и сделал), что статистика собирается только в дебаг-режиме, дабы не загружать лишними действиями движок. это надо в исходниках посмотреть
    --- добавлено : 28 окт 2010 в 13:44 ---
    угу. именно так оно и есть. по крайней мере, так работает сбор информации о запросах к бд.
    PHP:
    if (self::debugMode())
    {
        
    $db->setProfiler(true);
    }
     
    FractalizeR нравится это.
  5. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Можно принудительно включить профайлер в хуке setup_visitor или еще каком-нибудь. Правда, тогда не все запросы попадут в сборку.
     
  6. Ice

    Ice Местный

    Регистрация:
    13.10.10
    Сообщения:
    207
    Симпатии:
    108
    Версия XF:
    1.1.2
    мне надо, чтобы только админу отображалась вся указанная в сабже инфа....

    в новых версиях никаких изменений, попроще не стало всё это делаться?
     
  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Нет.
     
  8. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Ну можно сделать проверку в config.php на то, что кука xf_user начинается на нужный id пользователя и в зависимости от этого включать / выключать режим отладки.

    Только вы ведь понимаете, что подделать куку можно довольно легко и как следствие - такой вариант небезопасен.
     
  9. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
  10. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Оно требует постоянной активности debug mode. В теории активный отладочный режим замедляет работу (все же на сбор данных тратится время / память) + комментарий Yoskaldyr в той теме наводит на мысль, что могут оставаться открытые дырки такого рода. Так что лучше не стоит его включать для всех.
     
    Romchik® нравится это.
  11. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    А кто говорит для всех? Тема выше объясняет как открыть только для админов. В шаблоне условие дополняется еще одним значением - если пользователь администратор.
     
  12. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    FractalizeR написал о том что режим отладки изначально должен быть включен. Т.е. если не включить, то и описанный метод дебага только для админов не будет работать. Кто хочет может сам проверить - если не включен в конфиге дебаг для всех, то и модификация шаблонов не будет работать.
    Более корректный вариант как мне кажется использование условий по кукам или ip.
    К примеру если у админа постоянный ip, то можно делать так:
    добавляем в конец config.php что-то типа этого:
    PHP:
    if ($_SERVER['REMOTE_ADDR'] == '195.11.35.16'$config['debug']=true;
    где 195.11.35.16 - ip адрес админа

    К тому же дебаг, это не просто вывод дебаг информации, а именно дебаг режим работы. Т.е. действительно х.з. какие еще дырки кроме WebDav могут быть
     
    Romchik® нравится это.
  13. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    А, не понял сначала. Оно и ясно, что от одного условия не включится сам по себе :)

    Режим отладки конечно не стоит держать постоянно включенным, все верно. Но если включил на короткое время, то условие тут как нельзя кстати ;)
     
    FractalizeR нравится это.

Поделиться этой страницей