[siteStatistics] Переносим просмотры HitsPage
Некоторые, в том числе и я, используют дополнение HitsPage для отображения количества просмотров статьей. Сегодня я наконец решил переехать на siteStatistics. Для тех, у кого не было HitsPage — это плевая задача. А у меня он был, поэтому встал вопрос о переносе данных о просмотрах в siteStatistics. Для этого я написал небольшой скриптик.
Вот код скрипта.
Его можно выполнить или в отдельном файле, или в сниппете. Я для этого использую Console.
Задача не сложная, но есть одна тонкость. В HitsPage количество просмотров сохраняется в ресурсе в поле properties в виде одного единственного числа. А в siteStatistics учет ведется в разрезе каждого дня. Поэтому данные из HitsPage должны быть перенесены в указанный день. Я указал 1 января 2015 года. Можно за точку отсчета взять начало месяца, например. В общем, подумайте как лучше.
Также нужно указать пользователя, потому что в siteStatistics просмотры привязаны к пользователю. Желательно указать пользователя, статистика для которого вам не важна. Я указал админа с id = 1.
Если ресурсов многие тыщи, то можно использовать поэтапный перенос через указание limit и offset.
Теперь можно выполнить скрипт (на всяких случай сделайте backup базы, чисто для успокоения) и спокойно заменить вызов [[!HitsPage]] на [[!siteStatistics]].
П.С. У меня на обработку ~ 100 ресурсов ушло 0.032 сек. Теперь одно удовольствие просматривать статистику. :)
Вот код скрипта.
Его можно выполнить или в отдельном файле, или в сниппете. Я для этого использую Console.
Задача не сложная, но есть одна тонкость. В HitsPage количество просмотров сохраняется в ресурсе в поле properties в виде одного единственного числа. А в siteStatistics учет ведется в разрезе каждого дня. Поэтому данные из HitsPage должны быть перенесены в указанный день. Я указал 1 января 2015 года. Можно за точку отсчета взять начало месяца, например. В общем, подумайте как лучше.
Также нужно указать пользователя, потому что в siteStatistics просмотры привязаны к пользователю. Желательно указать пользователя, статистика для которого вам не важна. Я указал админа с id = 1.
Если ресурсов многие тыщи, то можно использовать поэтапный перенос через указание limit и offset.
Теперь можно выполнить скрипт (на всяких случай сделайте backup базы, чисто для успокоения) и спокойно заменить вызов [[!HitsPage]] на [[!siteStatistics]].
П.С. У меня на обработку ~ 100 ресурсов ушло 0.032 сек. Теперь одно удовольствие просматривать статистику. :)
Поблагодарить автора
Отправить деньги
Комментарии: 2
Сергей, а заход ботов как то фильтруется? В hitsPage дописывал функцию для фильтрации по USER_AGENT:
$bots = array(
'rambler','googlebot','aport','yahoo','msnbot','turtle','mail.ru','omsktele',
'yetibot','picsearch','sape.bot','sape_context','gigabot','snapbot','alexa.com',
'megadownload.net','askpeter.info','igde.ru','ask.com','qwartabot','yanga.co.uk',
'scoutjet','similarpages','oozbot','shrinktheweb.com','aboutusbot','followsite.com',
'dataparksearch','google-sitemaps','appengine-google','feedfetcher-google',
'liveinternet.ru','xml-sitemaps.com','agama','metadatalabs.com','h1.hrn.ru',
'googlealert.com','seo-rus.com','yadirectbot','yandeg','yandex',
'yandexsomething','copyscape.com','adsbot-google','domaintools.com',
'nigma.ru','bing.com','dotnetdotcom','yandexbot','ahrefsbot'
);
Читаем документацию.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.