1. Хочу добавить блок статистики:
1) Добавляю в default.php функцию:
//Объявляем функцию подсчета времени
function timer() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
2) В index.php после подключения общих функций (default.php)
/*Засекаем время старта*/
$tstart = timer();
3) В mysql.php корректирую функцию mysqlQuery (необходимо для подсчета кол-ва запросов и времени запроса к БД)
function mysqlQuery($sql, $print = false)
{
global $queries, $query_stat, $querytime;
$queries++;
$query_start_time = timer(); // передаем данные СТАРТА запроса в функцию подсчета времени
$result = mysql_query($sql, IRB_CONNECT);
$query_end_time = timer(); // передаем данные ФИНИША запроса в функцию подсчета времени
$query_time = $query_end_time - $query_start_time;
$querytime = $querytime + $query_time;
if($result === false || $print)
{
$error = mysql_error();
$trace = debug_backtrace();
$head = $error ?'<b style="color:red">MySQL error: </b><br>
<b style="color:green">'. $error .'</b><br><br>':NULL;
$error_log = date("Y-m-d h:i:s") .' '. $head .'
<b>Query: </b><br>
<pre><span style="color:#CC0000">'. $trace[0]['args'][0] .'</pre></span><br><br>
<b>File: </b><b style="color:#660099">'. $trace[0]['file'] .'</b><br>
<b>Line: </b><b style="color:#660099">'. $trace[0]['line'] .'</b>';
/**
* @TODO To clean in release
*/
//-----------------------------
die($error_log);
//-----------------------------
file_put_contents(IRB_ROOT .'log/mysql.log', strip_tags($error_log) ."\n\n", FILE_APPEND);
header("HTTP/1.1 404 Not Found");
die(file_get_contents(IRB_ROOT .'/404.html'));
}
else
return $result;
}
4) Добавляю в index.php (непосредственно перед подстановкой в шаблон index.tpl) вот эту некрасивую конструкцию:
ob_start();
//Засекаем время окончания
$seconds = (timer() - $tstart);
//Вычисляем процент времени:
if(empty($queries)) $queries = 0;
if(empty($querytime)) $querytime = 0;
$phptime = $seconds - $querytime;
$percentphp = number_format(($phptime/$seconds) * 100, 2);
$percentsql = 100 - $percentphp;
$seconds = substr($seconds, 0, 8);
print("<br>Обработано за <strong>$seconds</strong> секунд! с <strong>$queries</strong> запросами.
PHP: <strong>$percentphp %</strong>, MySQL: <strong>$percentsql %</strong>.");
/*Конец блока статистики*/
$statistic = ob_get_contents();
ob_end_clean();
5) В самом шаблоне index.tpl в футер вставляю переменную $statistic.
Собственно хотелось узнать Ваше мнение по поводу данных вопросов, может есть кокой нибудь более корректный алгоритм, по поводу пункта 4) имеет ли смысл создать отдельную функцию для финишного подсчета или может создать какой нибудь .php файл и интегрировать его с помощью include прямо в футер шаблона (раньше делал именно так)? Да и еще, если добавлять статистику типа: кол-во строк БД или посетителей ... куда это лучше делать?
2. При создании более сложной структуры сайта, допустим при переходе в меню основной (базовой) страницы, формируется страница со своими стилями меню и подменю, так вот как корректнее формировать структуру этих самых страниц подменю: делать кучу разделов в modules и соответственно tpl допустим со своими префиксами относящимися к конкретному разделу базовой структуры - типа (11_guest, 11_main; 33_guest, 33_main; ...) или правильнее внутри (guest, main ...) создать папки с вложенными подразделами?
3. Если мне необходимо запрашивать из БД таблицы с разными префиксами как поступить добавить еще одну переменную
define('IRB_DBPREFIX', 'irbis_');
define('IRB_DBPREFIX_xxxxx', 'xxxxxx_');
или как?
Заранее благодарен за Ваши ответы и терпение, не серчайте может какие то вопросы покажутся откровенно ламерские, но с этими знаниями не рождаются на то мы и люди чтобы общаться, делится опытом и знаниями.