Кармаграф

Прислано: Ainur

вт, 12/02/2008 - 16:58

Другие статьи по теме:

Недавно установил у себя на «италии по-русски» пару модулей, после обновления железа и друпала с 4.7.x на 5.x, среди них:
Voting API
User Karma
Extra Voting forms
Причем, User Karma используется только для подсчета общей кармы пользователей.
Не хитрыми манипуляциями сделал пару вещей:
1 – вывод кармы пользователя в темах и комментариях, а также в меню пользователя, все через функцию user_karma_user_karma().
2 – вывод кармы в профилях пользователей
3 – страницу мы, по подобию hbrahabr, которая еще будет дополнятся
4 – рейтинг «героев» и «злодеев» портала
5 – кармограф, благодаря классу Graph Drawing Class 2
Так что карма-функционал харбахабра легко реализуем при помощи друпала.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано penexe в вт, 12/02/2008 - 17:08.

Extra Voting forms опиши в 2х словах модуль если несложно?


Опубликовано Ainur в вт, 12/02/2008 - 17:35.

penexe, а он вроде стоит на этом сайте, дает возможность оценивать посты и комментарии пользователей.


Опубликовано penexe в вт, 12/02/2008 - 19:31.

тут стоит vote up down, я просто думал что это из другой оперы )


Опубликовано deska в ср, 13/02/2008 - 17:18.

Что-то я не пойму как карма считается и рейтинг, какая зависимость.

Для чего Ранк там в этом модуле?


Опубликовано Ainur в сб, 16/02/2008 - 14:55.

В грфике карма считается путем суммирования позитивных и негативных голосов в течении часа, получаем график, где зеленая волна – позитивные голоса, красная – негативные.
А карму считает модуль karma, путем суммирования голосов, полученных пользователем, можно выставить «жизнь» кармы, и голоса старше тот. времени не считать.


Опубликовано Gendoz в чт, 06/03/2008 - 20:57.

Круууууто! Не могли бы вы описать по-шагово как сделать такую страничку?
И еще вопросик, в Views возможно добавить фильтр по карме?


Опубликовано jason32 в вт, 08/04/2008 - 13:14.

насколько корректно работает? разбирались в функционале? я поставил - КУЧАААА настроек, нет ли перевода к этому модулю хотя бы?


Опубликовано Ainur в вт, 08/04/2008 - 15:26.

jason32, да вроде все работает, график я сам читаю, карма тоже вроде правильно считается, без сбоев.


Опубликовано enjoy в пн, 21/04/2008 - 05:32.

Как сделали форму для голосования в таком виде? У меня только чекбоксы или выпадающий список.
И как обновили jquery?


Опубликовано enjoy в пн, 21/04/2008 - 06:12.

Обновил модуль, все заработало.
Только у меня почему то прибавляет и убавляет по два очка?...


Опубликовано enjoy в пн, 21/04/2008 - 08:18.

Причем когда оцениваешь комментарии, то очки меняются и в статье тоже?


Опубликовано Ainur в пн, 21/04/2008 - 15:03.

проверь в настройках voting api или Extra Voting forms


Опубликовано enjoy в вт, 22/04/2008 - 06:12.

Да в настройках все в порядке. В принципе, это глючит только на старых постах, на новых в принципе все работает...
Вопрос такой еще к тебе, ты разобрался по какому принципу она карму начисляет и рассчитывает?
И позволяет ли начислять карму за добавление комментариев?


Опубликовано Гость (гостевой логин) в вт, 22/04/2008 - 08:42.

Привет может вопрос и тупой но хочеться спросить ты график когда рисуешь. У тебя скрипт по крону ходит и кармузаписывает в базу данных. А потом ты от туда считываешь значения для графика?


Опубликовано Гость (гостевой логин) в вт, 22/04/2008 - 08:43.

Заранее спасибо


Опубликовано Ainur в сб, 26/04/2008 - 14:02.

Гость написал(а):

Привет может вопрос и тупой но хочеться спросить ты график когда рисуешь. У тебя скрипт по крону ходит и кармузаписывает в базу данных. А потом ты от туда считываешь значения для графика?

Лучше на корн создание графика повесить, у меня он генерируется каждый раз при открытии страницы. Карма пользователей считается при голосовании, сам модуль хранит карму в кеше плюс есть все голоса которые пользователь получил за комментарии или ноды.

enjoy написал(а):

Да в настройках все в порядке. В принципе, это глючит только на старых постах, на новых в принципе все работает...

Это нормальное поведение модуля, в настройках есть срок жизни нодов и комментариев за которые можно голосовать.

enjoy написал(а):

Вопрос такой еще к тебе, ты разобрался по какому принципу она карму начисляет и рассчитывает?

Ничего сверхъестественного, складывает плюсики пользователя с минусиками и получает карму.

enjoy написал(а):

И позволяет ли начислять карму за добавление комментариев?

Да.


Опубликовано skifs в вт, 29/04/2008 - 09:50.

Ainur, вот допустим возьмем функцию user_karma_user_karma() , она ,насколько я понял, вызывает votingapi_get_vote() , которая уже в свою очередь лезет в базу с одним запросом.

т.е. можно предположить, что если я захочу вывести на главную страницу информацию о карме пользователя, мне придется выполнять +1 запрос к БД. Но по идее, если включена система автоматического присвоения роли пользователя в зависимости от кармы, то получается выполняется два одинаковых запроса, что не очень разумно.

Можно-ли как-то от этого избавиться? Спрашиваю здесь потому, что вижу, вы довольно глубоко копались в этом модуле.

PS. разделение на героев и злодеев чем сделано если не секрет?


Опубликовано Ainur в вт, 29/04/2008 - 11:47.

skifs написал(а):

Ainur, вот допустим возьмем функцию user_karma_user_karma() , она ,насколько я понял, вызывает votingapi_get_vote() , которая уже в свою очередь лезет в базу с одним запросом.

т.е. можно предположить, что если я захочу вывести на главную страницу информацию о карме пользователя, мне придется выполнять +1 запрос к БД. Но по идее, если включена система автоматического присвоения роли пользователя в зависимости от кармы, то получается выполняется два одинаковых запроса, что не очень разумно.

Можно-ли как-то от этого избавиться? Спрашиваю здесь потому, что вижу, вы довольно глубоко копались в этом модуле.

PS. разделение на героев и злодеев чем сделано если не секрет?

Присвоением ролей не пользуюсь, модуль имеет 2 способа вывода кармы, один – жестокий через user_karma_calculate_karma
Второй – более разумный, через функцию user_karma_user_karma, которая её через votingapi_get_vote из базы, в этом случае, если удалить какой-то комментарий с плюсом или минусом, то карма пользователя не будет пересчитана, пересчет кармы произойдет только после получения еще одного голоса.
Герои и злодеи считаются просто: выбираю всех пользователей с кармой в массив, получаю героев, потом сортирую через asort – получаю злодеев.


Опубликовано skifs в вт, 29/04/2008 - 12:41.

Немного прояснилось, спасибо )

Надеюсь не сильно напрягу, если поинтересуюсь ещё ко всему прочему в каком месте производятся рассчеты, связанные с героями и злодеями.. модуль, функция, страница views с кодом?


Опубликовано smile в пт, 02/05/2008 - 09:54.

Присоеденяюсь к вопросу о рейтинге юзеров по карме.

Внимателmyj изучив модуль user_karma понял, что карма нигде в базе не хранится. Она рассчитывается на основе всех оценок (поинтов), которые лежат в таблице голсовалки.

Раскажите пожалуйста механизм постороения рейтинга.

Заранее благодарен.


Опубликовано Ainur в пт, 02/05/2008 - 22:08.

skifs написал(а):

в каком месте производятся рассчеты, связанные с героями и злодеями.. модуль, функция, страница views с кодом?

модуль.


Опубликовано smile в чт, 22/05/2008 - 09:24.

Ainur написал(а):
skifs написал(а):

Ainur, вот допустим возьмем функцию user_karma_user_karma() , она ,насколько я понял, вызывает votingapi_get_vote() , которая уже в свою очередь лезет в базу с одним запросом.

т.е. можно предположить, что если я захочу вывести на главную страницу информацию о карме пользователя, мне придется выполнять +1 запрос к БД. Но по идее, если включена система автоматического присвоения роли пользователя в зависимости от кармы, то получается выполняется два одинаковых запроса, что не очень разумно.

Можно-ли как-то от этого избавиться? Спрашиваю здесь потому, что вижу, вы довольно глубоко копались в этом модуле.

PS. разделение на героев и злодеев чем сделано если не секрет?

Присвоением ролей не пользуюсь, модуль имеет 2 способа вывода кармы, один – жестокий через user_karma_calculate_karma
Второй – более разумный, через функцию user_karma_user_karma, которая её через votingapi_get_vote из базы, в этом случае, если удалить какой-то комментарий с плюсом или минусом, то карма пользователя не будет пересчитана, пересчет кармы произойдет только после получения еще одного голоса.
Герои и злодеи считаются просто: выбираю всех пользователей с кармой в массив, получаю героев, потом сортирую через asort – получаю злодеев.

повторюсь с тупым вопрсом - как выбрать юзеров с кармой в массив? данных о карме юзеров в бд не обнаружил.


Опубликовано Krotty@drupal.org в чт, 22/05/2008 - 21:14.

>повторюсь с тупым вопрсом - как выбрать юзеров с кармой в массив? данных о карме юзеров в бд не обнаружил.

Данные о карме хранятся в таблицах voting_api.


Опубликовано ii в сб, 31/05/2008 - 10:06.

Ainur,
скажи, пожалуйста, как ты вообще сделал страницу "we" с произвольным содержимым, в котором ты можешь вычислять массивы учатников?.. :-о

У меня в распоряжении есть Views и Panels, но, видимо, это все не то. Шаблон типа node-we.tpl.php тоже не парсится. :-)


Опубликовано jason32 в пт, 13/06/2008 - 15:38.

кстати да, резонный вопрос - карму не вытянешь прямо через Views? как это сделано?


Опубликовано Krotty@drupal.org в пн, 16/06/2008 - 21:23.

>кстати да, резонный вопрос - карму не вытянешь прямо через Views? как это сделано?
Данные кармы легко вытягиваются через Views, т.к. voting_api, используемый для подсчета кармы, имеет соответствующие хуки.


Опубликовано jason32 в вт, 17/06/2008 - 16:37.

Krotty@drupal.org
Данные кармы легко вытягиваются через Views, т.к. voting_api, используемый для подсчета кармы, имеет соответствующие хуки.
да неужели, легче легкого. Если написали Хук - можете выкладывать, никто в обиде не будет


Опубликовано Krotty@drupal.org в ср, 18/06/2008 - 08:09.

Мои извинения.
Моя уверенность базировалась на заявлении автора модуля User Karma что он без проблем интегрируется c Views.
Но сейчас узнал что и автор был сильно удивлен когда узнал что это не так.
Одна из упомянутых проблем - views выводит списки нодов, а карма это оценка юзеров. (Так что возможно разве что выводить карму автора ноды)
Вторая - Voting API экспортирует во Views только "свой" тип данных - points.

Похоже нужно действительно писать свои хуки, но и при этом список пользовтелей с кармой можно будет сделать разве что при искользовании usernode.


Опубликовано jason32 в сб, 28/06/2008 - 15:18.

пришлось писать поле у Views для кармы, как будет время - выложу сюда


Опубликовано kleale1 в вс, 19/10/2008 - 11:58.

ЛЮДИ! Прошу помощи. Так и не понял как выцепить данные из таблицы Voiting API так что бы можно было построить график изменения кармы за сутки.

Нашел очень красивый модуль для D5 Open Flash Chart - на его основе хотел забацать график - так вот запрос к базе правильный не составить, не понимаю где инфу брать. Был бы рад примеру запроса к базе.


Новое на сайте

Ссылки партнёров