Колориметрия, печать и препресс: технологии Главная Форум Галерея Контакты Download Статьи
Сражаясь неустанно,
доживём мы, Санчо,
до Золотого века!
 

Форум колористов и полиграфистов

Колориметрия и печать: технологии
 
Текущее время: 2:40, Вс, 08 дек 2019

Часовой пояс: UTC+03:00


Новые
ответы
в темах:



Начать новую тему  Ответить на тему  [ 2 сообщения ] 
Автор Сообщение
СообщениеДобавлено: 0:38, Чт, 23 авг 2012 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 893
Откуда: Москва
Иногда бывает любопытно посмотреть, не прибегая к таким громоздким инструментам, как Google Analytics, по каким поисковым запросам на какие страницы форума заходили читатели. Analytics массу любопытного оставляет за бортом. Предлагаю несложное компактное решение. На совместимость с phpBB3 пока не тестировалось, но думаю там несложно пару переменных если что в коде поправить.
Итак, первое что нам понадобится - контейнер для хранения статистики. Создадим пустой файл с именем например stat.htm, загрузим его на сервер в каталог форума и назначим атрибуты этого файла 666.
Теперь самое интересное - как страницы форума будут туда записывать информацию. Откроем файл includes\page_tail.php и добавим туда например после строки "global $do_gzip_compress;" следующий кусочек кода:
//statistika from cielab.xyz
$exampletime = date ("Y.m.d H:m:s A");
$linkone = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$linktwo = $_SERVER['HTTP_REFERER'];
$linkip = getenv("REMOTE_ADDR")."::".getenv("HTTP_USER_AGENT");
$filegal = fopen("stat.htm", "a+");
if (flock($filegal,LOCK_EX))
{
fwrite($filegal,'<a href="http://' . $linkone . '" target="new">forum: ' . $forum_name . ' | ' . $topic_title . '</a> from <a href="' . $linktwo . '" target="new2">' . $linktwo . '</a> | ' . $linkip . ' | ' . $exampletime . '<br /><br />');
flock($filegal,LOCK_UN);
}
fclose($filegal);
//end statistika
Отправим файл на сервер в папку includes, предварительно сбэкапив на всякий случай оригинальный файл page_tail.php.
Теперь каждая страница форума будет записывать в файл stat.htm строчку с названием темы и откуда на нее вошли каким браузером с какого айпишника. Если это поисковый запрос яндекса или гугла, то в большинстве случаев текст запроса легко читается в углу браузера при наведении на эту ссылку.
Обращаемся к файлу stat.htm и радуемся!-)
Очевидно, что регулярно пополняемый файл stat.htm скоро очень раздуется, рекомендую иногда очищать его содержимое. Для этого напишем простой скриптик, назовем его например clear.php и положим в ту же корневую папку форума (или наоборот запрячем куда-нибудь поглубже, но тогда не забудем поправить путь оттуда к файлу stat.htm). Вот содержимое файла clear.php, запуская который вы сможете обнулять статистику в файле stat.htm:
<?php
$example = date ("\E\m\p Y.m.d - H:m:s A");
//start archiv
$file = fopen("stat.htm", "w"); 
// exclusive lock
if (flock($file,LOCK_EX))
{
fwrite($file,'<p>' . $example . '</p><br>');
// release lock
flock($file,LOCK_UN);
}
fclose($file);
//end archiv
echo ("<a href='http://cielab.xyz/forum/viewtopic.php?t=320'><b>Clear Ready</b></a>");
?>
Отметим, что храниться в файле статистики будут не просто немые гиперлинки на страницы форума, а говорящие названия тем форума, к которым читатели обращались. Для этого задействуются переменные форума phpbb2 $forum_name и $topic_title. Возможно в phpBB3 эти переменные названы иначе, я не проверял, кто проверит - пишите.


Вернуться к началу
vote2019.appspot.com
 Заголовок сообщения: Реализация для phpbb3
СообщениеДобавлено: 19:10, Пн, 21 янв 2013 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 893
Откуда: Москва
Более актуально проделать то же самое для форума phpBB3.
Вот как это просто сделать. Берем файл из корня форума viewtopic.php, листаем до конца и после строк:
  • // Output the page
    page_header($user->lang['VIEW_TOPIC'] . ' - ' . $topic_data['topic_title'], true, $forum_id);
вставляем следующий код:
//statistika
$exampletime = date ("Y.m.d H:m:s A");
$linkone = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$linktwo = $_SERVER['HTTP_REFERER'];
$linkip = getenv("REMOTE_ADDR")."::".getenv("HTTP_USER_AGENT");
if (preg_match("/bot/i", $linkip) or preg_match("/Crawler/i", $linkip)) {}
else {
if (preg_match("/Mediapartners/i", $linkip)) {}
else {
if (preg_match("/spider/i", $linkip)) {}
else {
if (preg_match("/f=/i", $linktwo)) {}
else {
if (preg_match("/t=/i", $linkone)) {
$filegal = fopen("statistika.php", "a+");
if (flock($filegal,LOCK_EX))
{
fwrite($filegal,'<a href="http://' . $linkone . '" target="new">' . $topic_data['topic_title'] . ' </a> from <a href="' . $linktwo . '" target="new2">' . $linktwo . '</a> | ' . $linkip . ' | ' . $exampletime . '<br /><br />');
flock($filegal,LOCK_UN);
}
fclose($filegal);
}}}}}
//end statistika
Здесь есть несколько условий, отсекающих от занесение в статистику поисковых роботов Crawler, spider, bot, поискового робота Google и рекламного робота AdSense - словом на что хватило фантазии, можете дописать эту часть на свое усмотрение. Так же не учитываются переходы внутри форума к теме а вот заход по поисковому запросу попадет в статистику. Для этого отсекаются адреса входа с типичным для форума постфиксом "f=".
Не забудьте создать на сервере в корневой папке форума файл statistika.php и назначить ему атрибуты на запись. Как обнулять файл статистики написано в предыдущем посте.
Главное отличие этого скрипта для phpBB3 от того, что работал в phpBB2 - другая переменная, описывающая название темы, здесь она - $topic_data['topic_title'] вместо $topic_title из скрипта для второй версии форума. Хочется же видеть в статистике не просто ссылку а именно название темы.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 2 сообщения ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

cron
© CIELab.XYZ
Создано на основе phpBB® Forum Software © phpBB Limited
Конференция запущена 18 августа 2004 года | Защищено от спама системой stopforumspam
Всего посещений - 5484229 | Всего за день - 3627 | Уникальных сегодня - 1356, вчера - 3693, позавчера - 2674