Автоматически расчитываемые значения Fivestar

Главные вкладки

Аватар пользователя spectra spectra 26 августа 2012 в 18:39

Имеется тип материала, на котором зарегестрированные пользователи голосуют с помощью Fivestar
Оценка пользователя, среднее значение и количество проголосовавших выводится стандартными способами, но дополнительно к этому необходимо реализовать подобное

вывести процент, который расчитывается путем деления, например числа пользователей, поставивших оценку 3 и выше к общему числу проголосовавших.
Кроме этого, использовать во вьюхе рейтинга упорядочивание по этому проценту.
Как это сделать, возможно с помощью других/дополнительных модулей?

Комментарии

Аватар пользователя divined divined 27 августа 2012 в 10:42

Открываете модуль fivestar и ищите где происходит подсчет голосов, и пишите туда свой метод подсчета.

(Я не уверен, но думаю что должен быть хук на подобное действие)

Сортировка по результатам fivestar уже где-то здесь описывалась с примером решения.

Аватар пользователя Nikit Nikit 27 августа 2012 в 10:47

Используйте хуки votingapi, там есть файл API.txt, где есть описание функции function hook_votingapi_results_alter. Тут вы должны закешировать likeit посчитавь в запросе >60 и общее кол-во. Потом выводишь этот результат уже в тематизаторе fivestar.

Аватар пользователя spectra spectra 27 августа 2012 в 14:51

Можно поподробней про вывод в тематизаторе fivestar?
Необходимый запрос написал, но что именно и как вставить, чтобы получить доступ к этим результатам?

Аватар пользователя Nikit Nikit 27 августа 2012 в 10:48

А вот метод divined я крайне не рекомендую, это не drupal.way. После обновления вы потеряете все свои изменения.

Аватар пользователя divined divined 27 августа 2012 в 11:06

Какой вы не внимательный, я же написал использовать АПИ, и менять модуль если АПИ нет, как-раз таки самый настоящий друпал вэй. )

ПС: к тому же никто не запрещал выдергивать модуль из системы обновления после правки, закомментировав всего пару строк в файле .info

Аватар пользователя Orion76 Orion76 27 августа 2012 в 11:20

"divined" wrote:
если АПИ нет,

Тогда есть хуки..
Хакая модуль, вы лишаете его поддержки разработчиков...Если ,конечно, вы сами не хотите взять на себя эту ношу..

Аватар пользователя divined divined 27 августа 2012 в 11:22

orion76 wrote:
"divined" wrote:
если АПИ нет,

Тогда есть хуки..
Хакая модуль, вы лишаете его поддержки разработчиков...Если ,конечно, вы сами не хотите взять на себя эту ношу..

т.е. вы считаете что хуки это не часть АПИ? Удачи.

Аватар пользователя divined divined 27 августа 2012 в 11:21

Как хочу так и отвечаю, особенно в понедельник утром.

А вы бы вместо того чтобы исправлять чужие ответы, помогли бы другим с их вопросами.

Аватар пользователя Orion76 Orion76 27 августа 2012 в 11:48

"divined" wrote:
если АПИ нет

"divined" wrote:
что хуки это не часть АПИ

Вывод: У Друпал хуков нет? -)))
Тогда вам удача не поможет-))

Аватар пользователя divined divined 27 августа 2012 в 11:57

Писдетс,

Что такое хук - это функция прерывающая выполнение основного кода, и позволяющая внести свой код в процесс выполнения.

Где реализуется эта самая функция, которая ищет хуки и перехватывает их выполнение? В ядре друпала или в самом модуле.

Это и называется АПИ.

hook_user(), hook_form_alter() это АПИ друпала

hook_votingapi_results_alter() это АПИ модуля Fivestar

ПС: Не несите бред

Аватар пользователя divined divined 27 августа 2012 в 12:01

И чтобы дальше не было споров:

АПИ - Интерфейс программирования приложений
Содержит функции, классы и прочее для использования во внешних программных продуктах.

Т.е. это есть набор функций для взаимодействия с другими приложениями, для чего и служат хуки.

Аватар пользователя divined divined 27 августа 2012 в 14:27

Кстати:

Вопрос "Тролль?" - является одним из самых распространенных видов троллинга, уводящих обсуждение в другое направление и активно провоцирует скандал. К тому же является косвенным оскорблением всех участников общения, т.к. не направлен на конкретную личность. Заставляет всех, тем самым, отстаивать свою точку зрения.

Вывод: Тролль тут вы!