Приветствую всех друпалеров. Появился вопрос писать модуль или же найти готовое решение по статистике статей в блоге и т.д.
Простыми словами - узнать кто просматривал статью, роли пользователей, которые просматривали статью.
Например: Authenticated users 5 reads
Anonymous users 20 reads
Еще лучше чтобы имена пользователей выводились, если анонимный пользователь смотрел, то его ip.
Вообщем не очень сложная задача. У кого какие варианты?
Комментарии
Если модуля нет - то на hook_nodeapi на событие view смотреть глобальную переменную $user и записывать в свою таблицу nid и uid. Ну и далее уже можно выбирать и по ролям,и по никам и хоть по филду в профайле.
Допустим я создал таблицу в базе, где будет атрибут, к примеру aucount - количество просмотров конкретной ноды анонимным пользователям и атрибут rucount - количество просмотров для авторизованных пользователей.
Вопрос. Какое должно быть условие в коде для поставленной задачи? Чтобы при заходе анонимного пользователя передавалось
значение +1 в атрибут aucount и авторизованному юзеру соответственно(наведите на путь, дальше сам).
Для этого лучше создай группу полей, состоящую из двух числовых полей. У тебя всё само создастся.
Пусть это будет field_aucount и field_rucount
и тогда будет примерно так:
//если нужно мониторить все типы нод - поля должны быть у всех,иначе проверяй по $node->type;
//проверь из чего состоит объект ноды,я мог опечататься.
if($op == 'view'){
global $user;
if($user->uid > 0) {
$node->field_rucount[0]['#value'] = $node->field_rucount[0]['#value'] + 1;
}
else {
$node->field_aucount[0]['#value'] = $node->field_aucount[0]['#value'] + 1;
}
}
}
Спасибо большое! Этого должно хватить чтобы начать писать модуль. Ну а с реализацией полей в таблице - это не сложно сделать в модуле.
Пожалуйста.
Повторюсь - не изобретай велосипед, создай обычные поля средствами друпала. Как плюс - ты потом по ним сортировать сможешь, во вьюсах выборки делать. А с кастомной таблицей такое не пройдет.