Плагін Robostat для збору статистики відвідування сайту роботами

Безкоштовні розширення з каталогу

Прямий ефір

  • Блог розробки LiveStreet132.73
  • Сайти на LiveStreet121.49
  • Запитання78.96
  • Додаткові модулі та доробки для LiveStreet73.21
  • Технічна документація LiveStreet68.62
  • Tips & tricks60.64
  • Біржа замовлень на розробку та підтримку за гроші56.28
  • Пропозиції та побажання46.04
  • Шаблони для LiveStreet38.75
  • Вирішення проблем28.89

Власне почалося все з того, що вирішив написати «правильний» плагін, з підняттям репозиторію svn і всієї фігні. Із правильними заголовками, нормальною структурою. Загалом отримати досвід написання правильного плагіна.

З чогось монстроподібного починати не хотілося, я почухав голову і вирішив написати ось цей плагінчик. Плагін Robostat збирає та відображає статистику відвідувань сайту різними роботами і не тільки. Фактично він аналізує поле заголовка User-Agent на наявність заданого підрядка та збільшує відповідний лічильник.

Процедура інсталяції проста і невимушена. Плагін записується в папку plugins livestreet'а та активується на сторінці плагінів. З цього моменту починається підрахунок статистики відвідування роботами, яку адміністратор сайту може подивитися на сторінці Але за умови, що у вашому шаблоні є хук html_head_end. Шукав системний хук, щоб не залежати від шаблону, але не знайшов… Чи може хто знає?

Список роботів та їх підрядок з User-Agent розміщується у файлі конфігурації плагіна - config/config.php. Я не став заводити окрему таблицю в базі даних, тому що список не великий, зміна його справа рідкісна, а використовується він при відкриттікожної сторінки, що може спричинити додаткове навантаження на БД. І морочитися з кешуванням теж немає сенсу.

У «дистрибутиві» є налаштування для 6 роботів:

  • Yandex
  • Google
  • Rambler
  • MSN
  • Yahoo!
  • Alexa
За аналогією можна підключити ще якийсь робот, або навіть почати підраховувати скільки у вас було користувачів з Internet Explorer, Opera, Firefox і т.п. і т.д. Все залежить від рядка з User-Agent. Можливо, потрібно поміняти якісь підрядки для роботів, вставив те, що знайшов в інтернеті :)