[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'
    );            
                Читаем документацию.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.