Облагораживаем статистику производительности ( для 0.4.2)


На днях адаптировал одному человеку плагины под шаблон, заодно он попросил сделать «что-нибудь» со статистикой производительности (та что в подвале, которая видна только админу)и сделать по возможности что бы она как то пряталась.

Вспомнил про скрипт из этого топика, который отлично работал у меня на версии 0.3.* за что спасибо автору, и использовал его для 0.4.2, подправив только запись куков, что бы запоминалось состояние.

Для тех у кого установлена админка aceadminpanel, нужно открыть plugins/aceadminpanel/templates/skin/default/statistics_performance.tpl и заменить его содержимое этим:

{if $bIsShowStatsPerformance and $oUserCurrent and $oUserCurrent->isAdministrator()}
      <div id="stats_bg">
	   <a id="stats_toggle" href="#">Perfomance<span id="stats_status"></span></a>
	    <div id="stats_content">

	      <dl>
		<dt>MySql</dt>
		<dd>query: <strong>{$aStatsPerformance.sql.count}</strong></dd>
		<dd>time: <strong>{$aStatsPerformance.sql.time}</strong></dd>
	      </dl>
				
	      <dl>
		<dt>Cache</dt>
		<dd>query: <strong>{$aStatsPerformance.cache.count}</strong></dd>
		<dd>— set: <strong>{$aStatsPerformance.cache.count_set}</strong></dd>
		<dd>— get: <strong>{$aStatsPerformance.cache.count_get}</strong></dd>
		<dd>time: <strong>{$aStatsPerformance.cache.time}</strong></dd>
	     </dl>
				
	      <dl>
	        <dt>Memory</dt>
		<dd>memory limit: <strong>{$aMemoryStats.memory_limit}</strong></dd>
		<dd>usage: <strong>{$aMemoryStats.usage}</strong></dd>
		<dd>peak usage: <strong>{$aMemoryStats.peak_usage}</strong></dd>
	      </dl>
				
	      <dl>
		<dt>PHP</dt>
		<dd>time load modules: <strong>{$aStatsPerformance.engine.time_load_module}</strong></dd>
		<dd>full time: <strong>{$iTimeFullPerformance}</strong></dd>
	      </dl>

            </div>
        </div>
{/if}
	
{literal}
<script language="JavaScript" type="text/javascript">
    window.addEvent('domready', function() {
        var start = Cookie.read('stats_start') || '0px';
        var status = {'true': ' ↓','false': ' ↑'};
        var statSlider = new Fx.Slide('stats_content');
        if (start != '0px') {
            statSlider.open = false;
        }
        $('stats_content').setStyle('margin-top', start);
        $('stats_status').set('html', status[statSlider.open]);
        $('stats_toggle').addEvent('click', function(e) {
            e.stop();
            statSlider.toggle();
        });
        statSlider.addEvent('complete', function() {
            $('stats_status').set('html', status[statSlider.open]);
            new Fx.Scroll(window).toBottom();
            start = $('stats_content').getStyle('margin-top');
            Cookie.write('stats_start', start, {
                domain: null,
                path: '/',
                duration: 30
            });
        });
    });
</script>
{/literal}

если aceadminpanel не используется то редактируем /текущий_скин/statistics_performance.tpl

Далее в style.css текущего скина дбавляем:
/*stat*/
#stats_content { color: #6699FF; border-top: 1px dashed #CCCCCC;overflow: hidden; padding-top: 20px; clear: both; padding: 20px 40px;}
#stats_content  dl {float:left; font-size:11px; width:14%;}
#stats_content  dl dt {font-size: 14px; font-weight: bold; margin-bottom: 0.5em;}
#stats_content  dl dd {line-height:14px; margin-bottom:0.5em;color: #677E90;}
#stats_bg { padding:0 0 20px 0;}
#stats_bg #stats_toggle { font-size:14px; color:#999; text-decoration:none; margin-left: 40px;}
#stats_bg #stats_status { font-size:12px; }
#stats_bg #stats_content { height:90px; padding-top:15px; }


Статистику можно свернуть\развернуть, при этом положение запоминается.

10 комментариев

avatar
если у меня все показывает кроме памяти то что бы это могло быть?
avatar
память показывает только с админкой, как выводить без нее я не в курсе
avatar
я хотел сказать что я хочу видеть все. Все показывает а память — нет :(
avatar
то есть, у вас установлена aceadminpanel, вы правили plugins/aceadminpanel/templates/skin/default/statistics_performance.tpl, но показания памяти пусты?
avatar
все как вы и сказали :( aceadminpanel_1.4.141 + ls 0.4.2. я и в шаблоне переписал файл и в самом плагине
avatar
у меня обычный хостинг. Не VPS или Dedicated
avatar
а без модификации статистики, показатели памяти были?
avatar
так раньше стоял старый файл (statistics_performance.tpl). там и поля по моему и не было.
а это код из engine.class.php. я не вижу что бы было что-то про память

public function getStats() {
		return array('sql'=>$this->Database_GetStats(),'cache'=>$this->Cache_GetStats(),'engine'=>array('time_load_module'=>round($this->iTimeLoadModule,3)));
	}
avatar
в шаблоне memory нет, в aceadminpanel — есть
avatar
я заменил повсюду на «всякий» :)скажи где эти данные отдаются пожалуйста? Я попробую сам как-нибудь…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.