[siteStatistics] Переносим просмотры HitsPage

Некоторые, в том числе и я, используют дополнение HitsPage для отображения количества просмотров статьей. Сегодня я наконец решил переехать на siteStatistics. Для тех, у кого не было HitsPage — это плевая задача. А у меня он был, поэтому встал вопрос о переносе данных о просмотрах в siteStatistics. Для этого я написал небольшой скриптик.
Вот код скрипта.
Его можно выполнить или в отдельном файле, или в сниппете. Я для этого использую Console.
Задача не сложная, но есть одна тонкость. В HitsPage количество просмотров сохраняется в ресурсе в поле properties в виде одного единственного числа. А в siteStatistics учет ведется в разрезе каждого дня. Поэтому данные из HitsPage должны быть перенесены в указанный день. Я указал 1 января 2015 года. Можно за точку отсчета взять начало месяца, например. В общем, подумайте как лучше.
Также нужно указать пользователя, потому что в siteStatistics просмотры привязаны к пользователю. Желательно указать пользователя, статистика для которого вам не важна. Я указал админа с id = 1.
Если ресурсов многие тыщи, то можно использовать поэтапный перенос через указание limit и offset.
Теперь можно выполнить скрипт (на всяких случай сделайте backup базы, чисто для успокоения) и спокойно заменить вызов [[!HitsPage]] на [[!siteStatistics]].

П.С. У меня на обработку ~ 100 ресурсов ушло 0.032 сек. Теперь одно удовольствие просматривать статистику. :)
Сергей Шлоков
19 сентября 2015, 14:03
modx.pro
1 161
+2
Поблагодарить автора Отправить деньги

Комментарии: 2

An Si
22 декабря 2016, 09:37
0
Сергей, а заход ботов как то фильтруется? В 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'
    );
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2