|
|
|
| Выложена новая версия, в которой исправлены ошибки, обнаруженные в предыдущей версии http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=11508, продолжаем обуждение в этой теме. Общий тон, что уменьшилась функциональность, но это связано с усложнением движка, и планируется её вернуть на преждний уровень в версиях 3.x. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 01:44)
| | а для перехода с 3.0.1 на 3.0.2 нужно менять таблицы SQL ? | |
|
|
|
|
|
|
|
для: Sasha
(15.01.2006 в 10:52)
| | Нет, в версиях 3.0.x это не понадобится, если потребуется смена базы данных версия будет увеличина до 3.1.x и об этом будет сказано явно. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 01:44)
| | 12. Отчет время сеанса вы строите на основании данных которые удаляете при архивации.
Имеется ввиду, что отчет сторится на основании таблицы system_ip, которая очищается при выгрузке данных.
Из политических вопросов: предлагаю убрать поле searches из system_ip и добавить поле title в system_pages (можно его пока не задействовать). В этом случае, у нас не будет проблем с базами данных и можно будет проще договариваться о коде.
Кстати, у меня появилась идея еще одного отчета:) Но это после отладки третьей версии. | |
|
|
|
|
|
|
|
для: Loki
(15.01.2006 в 11:30)
| | 12 Да, это так, для времени сеанса заведены временные таблицы time - где данные архивируются по минууам до 10 минут, по 10 минут до часу и по часу до 24 часов - их просто со временем нужно будет сложить для получения времени сеанса для более длительного переиода, чем текущие сутки. Т.е. сделаем по аналогии с хитами, браузерами и операционными системами.
Хорошо займусь searches в system_ip, с title у меня вот какие предубеждение - а зачем на вводить ещё одно поле, если у нас имеется поле name для URL? Там где имеется title - мы просто помещаем название страницы, где нет - URL. Или вы хотите, чтобы URL тоже всегда оставался на тот случай если потребуется точный переход? Для меня любой вариант приемлем, только хотелось бы взглянуть на механизм генерации новой страницы в count.php
<?php
$pgs = mysql_query("SELECT id_page FROM $tbl_pages WHERE name='".$_SERVER['PHP_SELF']."'");
if ($pgs)
{
// Выясним, первичный ключ (id_page) текущей страницы
if(mysql_num_rows($pgs)>0) $id_page = mysql_result($pgs,0);
// Если данная страница отсутствует в таблице pages
// и не разу не учитывалась - добавляем данную страницу в таблицу.
else
{
$query = "INSERT INTO $tbl_pages VALUES (0, '".$_SERVER['PHP_SELF']."', 0)";
mysql_query($query);
// Выясняем первичный ключ только что добавленной
// страницы
$id_page = mysql_insert_id();
}
}
?>
|
И наверное в связи с этим придётся перейти с PHP_SELF на REQUEST_URI - т.е. по умолчанию сделать полный адрес страницы. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 13:48)
| | >с title у меня вот какие предубеждение - а зачем на вводить ещё одно поле, если у нас имеется поле name для URL?
Такой вопрос вставал у меня сначала, но потом решил сделать так как есть по следующим причинам:
В процессе раскрутки сайта название страницы может неоднократно меняться, поэтому нужна какая-то привязка (адрес страницы). Можно, конечно, передавать некое условное имя, но при этом мы недалеко уходим от адреса. Так что я предпочитаю передавать счетчику имя страницы.
И второй момент. Часто удобно присвоить группе страниц одно имя. Например, в даном форуме около 11 тысяч страниц. Вести статистику по кажной, наверное, нецелесообразно, так что удобнее присвоить всем страницам форума одно название и учитывать его в целом.
Если есть возражения, то готов их выслушать...
Вот как блок проверки выглядит у меня сейчас:
<?
$query = "SELECT id_page FROM pages WHERE title='$titlepage'";
$pgs = mysql_query($query);
if ($pgs)
// Выясним, первичный ключ (id_page) текущей страницы (по названию страницы)
if(mysql_num_rows($pgs)>0) $id_page = mysql_result($pgs,0);
// Если название данной страницы отсутствует в таблице pages
// то проверяем сраницу по ее адресу.
else
{
$query = "SELECT id_page FROM pages WHERE name='".$_SERVER['REQUEST_URI']."'";
$pgs = mysql_query($query);
if ($pgs)
// Выясним, первичный ключ (id_page) текущей страницы (по адресу страницы)
if(mysql_num_rows($pgs)>0)
{
$id_page = mysql_result($pgs,0);
$query = "UPDATE pages SET 'title'='$titlepage' WHERE id_page=$id_page";
mysql_query($query);
}
// Если данная страница отсутствует в таблице pages
// и не разу не учитывалась - добавляем данную страницу в таблицу.
else
{
$query = "INSERT INTO pages VALUES (0, '".$_SERVER['REQUEST_URI']."','$titlepage', 0)";
mysql_query($query);
// Выясняем первичный ключ только что добавленной
// страницы
$id_page = mysql_insert_id();
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Loki
(15.01.2006 в 21:50)
| | Хм... завтра попытаюсь это прикрутить к счётчику на softtime.ru. Вообще говоря наверное такой подход оправдан - он позволит безболезненно перейти к новой системе, так как всегда можно будет откатится на старую версию. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 01:44)
| | Захотел заменить $_SERVER['PHP_SELF'] на $_SERVER['REQUEST_URI'],
чтобы отображалась статистика по каждому запросу в отдельности,
у вас в пояснении написано, цитата – (можно просто открыть каждый файл
в блокноте и воспользоваться функцией автозамены.)
Я нашел упоминание о $_SERVER['PHP_SELF'] только в одном файле (count.php).
Достаточно ли внести изменения только в один этот файл,
или нужно еще изменять что то и в других файлах. | |
|
|
|
|
|
|
|
для: kievigor
(15.01.2006 в 18:03)
| | Дело в том, что в системе администрирования это переменная не нужна, так как адрес страницы определяется при учёте её при помщи скрипта count.php, а далее страница уже извлекается из базы данных. Просто исправьте count.php - дополнительных изменений не требуется - описание мы поправим к следующему релизу, чтобы оно не смущало пользователей. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 20:30)
| | А рефереры не определяются?
У меня пусто.... :( | |
|
|
|
|
|
|
|
для: Sasha
(16.01.2006 в 20:46)
| | Процентные баги | |
|
|
|
|
|
|
|
для: Akira
(16.01.2006 в 21:31)
| | Да, есть такое дело, будем разбираться с этим после версии 3.1, когда будут добавлены Firefox, Mozilla и MyIE. | |
|
|
|
|
|
|
|
для: Sasha
(16.01.2006 в 20:46)
| | >А рефереры не определяются?
>У меня пусто.... :(
Так не должно быть, у меня, например, работают корректно - опишите, если не сложно, как это контролируете? | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 02:51)
| | Просто в Ссылках абсолютно пусто.....даже после переходов на сайт откуда-то. | |
|
|
|
|
|
|
|
для: Sasha
(17.01.2006 в 03:05)
| | Посмотрите добавляется ли что-нибудь в таблицу system_referer? | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 13:41)
| | Да добавляются...
Тут моя ошибка, меня сбило слово реферер....я думал будут выводиться все рефереры, а они выводятся если только добавлены в базу :(
Извините за шум.
Жалко, что не работают страницы просмотренные с IP | |
|
|
|
|
|
|
|
для: Sasha
(17.01.2006 в 17:05)
| | если убрать удаление данных при архивации, то вроде как должно работать. | |
|
|
|
|
|
|
|
для: Loki
(17.01.2006 в 17:21)
| | Причём я пробежался по коду - вроде даже не должны нарушаться отчёты... т.е. вполне можно будет создать буффер скажем в месяц, для этого в файле archive.php следует исправить блок
<?php
if(mysql_num_rows($arh) > 0)
{
$last_date_arch = mysql_result($arh,0);
$arr[] = "DELETE FROM $tbl_ip WHERE putdate <= '$last_date_arch'";
$arr[] = "DELETE FROM $tbl_refferer WHERE putdate <= '$last_date_arch'";
$arr[] = "DELETE FROM $tbl_searchquerys WHERE putdate <= '$last_date_arch'";
foreach($arr as $query) if(!mysql_query($query)) exit(mysql_error());
}
?>
|
на
<?php
if(mysql_num_rows($arh) > 0)
{
$last_date_arch = mysql_result($arh,0);
$arr[] = "DELETE FROM $tbl_ip WHERE putdate <= '$last_date_arch' - INTERVAL 1 MONTH";
$arr[] = "DELETE FROM $tbl_refferer WHERE putdate <= '$last_date_arch' - INTERVAL 1 MONTH";
$arr[] = "DELETE FROM $tbl_searchquerys WHERE putdate <= '$last_date_arch' - INTERVAL 1 MONTH";
foreach($arr as $query) if(!mysql_query($query)) exit(mysql_error());
}
?>
|
Нужны только добровольцы для того, чтобы испытать это. | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 17:48)
| | А так и сделаю, когда разберусь со всеми таблицами. Пока катастрофически небыло времени, так что я не очень понимаю какие данные выгружаются и как потом собираются в отчеты. Как только разберусь - поставлю это на хостинг. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 20:30)
| | посмотрите это только у меня или нет,На главной странице хотел посмотреть Для всего сайта
Для получения статистики только по выбранной странице щелкните на ее имени в таблице. Если страница не будет выбрана, то статистика будет представлена для всего сайта.
результат
admin/main.php was not found on this server.
|
Посмотрел а нет этого файла main.php | |
|
|
|
|
|
|
|
для: Коляка
(16.01.2006 в 22:39)
| | Этот файл переименован в hits.php - в следующей версии ссылка будет исправлена. | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 01:44)
| | Главная страница счетчика.
Статистика посещений по страницам сайта.
После смены дня (после полуночи) перестали отображаться
Адреса посещаемых страниц, хотя ссылки на страницы со списком
посещенных страниц остались(строка разбивки на страницы).
У меня установлен $_SERVER['REQUEST_URI']
в (count.php), может в этом проблема.
В (Точки входа) при этом все адреса присутствуют
Если задумано, что эта статистика будет только за текущие сутки,
то надо убрать строку со ссылками на страницы где были
расположены адреса. | |
|
|
|
|
|
|
|
для: kievigor
(17.01.2006 в 01:37)
| | Это будет исправлено, но позже... в принципе если критично можно увеличить интервал в системе удаления, но это повлечёт искажение информации в остальных отчётах.
PS Loki уже заявил ноту по поводу суточной архивации... будем решать этот вопрос в ближайшие релизы... | |
|
|
|
|
|
|
|
для: cheops
(15.01.2006 в 01:44)
| | Сегодня после полуночи, после теста суточной архивации, в разделе downloads будет выложена новая версия 3.1.0, определяющая браузеры FireFox, MyIE, Mozilla и с расширенной таблицей system_pages, содержащей поле title для названия страниц (вопрочем это пока не будет использоваться). Переход с версии 3.0.x потребует выполнения нескольких SQL-запросов из файла update.sql. | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 17:44)
| | Ждём =) | |
|
|
|
|
|
|
|
для: 27
(17.01.2006 в 18:26)
| | Сheops.
Приведённые вами выше изменения кода там уже будут?
Те, куда требовались испытатели :) | |
|
|
|
|
|
|
|
для: Sasha
(17.01.2006 в 18:42)
| | Нет месячный буффер нужно будет создать самим, в релизах данные пока хранится будут только за 1 день. Когда каскадёры сообщат об своих ощущениях, порушенных таблицах и испорченных отчётах, только тогда будем вводить изменения в релиз :))) | |
|
|
|
|
|
|
|
для: cheops
(17.01.2006 в 22:45)
| | Просмотрел блок архивации. Что не понравилось: сначала выцепляем все данные, а потом их вносим в архив... Получается, что если у нас большой объем данных и set_time_limit не работает, то счетчик просто перестает работать: выгрузить данные мы не можем, а при попытке войти в админку у нас запускается архивация.
Хиты и засчитанные хиты выбираются одинаковым запросом. То есть они ихначально были кандидатами под сокращение:)
Короче, хотелось бы рабочую архивацию, которую уже можно использовать (поправить mail.ru). То есть я бы начал с ее проверки, а остальное - напишем:) | |
|
|
|