Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

bitrix:rating.vote и инфоблоки

00 голосов
9
Здравствуйте!
Необходимо реализовать рейтинги элементов инфоблоков, решил прежде чем писать своё, попробовать использовать компонент bitrix:rating.vote.
Вставил в шаблоне компонента bitrix:news.list (для тех, кто захочет попробовать, работает только с отключенным кэшем):
Код
 <?$APPLICATION->IncludeComponent("bitrix:rating.vote","",
  Array(
    "ENTITY_TYPE_ID" => "THEMES",
    "ENTITY_ID" => $arItem['ID']
    ),
  null,
  array("HIDE_ICONS" => "Y")
);?>

Всё работает как надо.

Далее пишу в списке выводимых полей "RATING_TOTAL_VALUE", так рекомендовано на странице

http://dev.1c-bitrix.ru/api_help/main/general/ratings/hidden_components/rating_vote.php

Результата никакого.

Ок, пишу вручную:

Код
CModule::IncludeModule('iblock');

$res = CIBlockElement::GetList(
  Array(
    'RATING_TOTAL_VALUE' => 'desc',
  ),
  Array(
    'ACTIVE' => 'Y',
    'IBLOCK_ID' => 1,
  ),
  false,
  false,
  Array(
    'NAME',
    'RATING_TOTAL_VALUE',
    'RATING_TOTAL_VOTES',
    'RATING_TOTAL_POSITIVE_VOTES',
    'RATING_TOTAL_NEGATIVE_VOTES',
    'RATING_USER_VOTE_VALUE',
    'TOTAL_VALUE',
    'PROPERTY_RATING_TOTAL_VALUE',
    'PROPERTY_TOTAL_VALUE',
  )
);

while($arItem = $res->NavNext()){
  ?>
  <pre><?print_r($arItem)?></pre>
  <?
}
 

Кроме NAME и ID ни одно поле не выводится.

Может я не так пишу?
спросил 05 Май, 13 от Mauka (320 баллов)

9 Ответы

00 голосов
Ладно, как я понял пока битрикс этого не умеет.
А зарегистрировано ли какое-нибудь событие, которое происходит при голосовании?
Тогда бы можно было создать обработчик события и записать данные рейтинга в свойства элемента инфоблока.
ответил 05 Май, 13 от Mauka (320 баллов)
00 голосов
Нашел вот события OnAfterAddRating и OnAfterUpdateRating модуля main, добавил обработчики в init.php через AddEventHandler, но не вызывается и всё. хотя я и не уверен что это при самом голосовании, скорее всего при редактировании в админке, но и тогда событие не срабатывает..
ответил 05 Май, 13 от Mauka (320 баллов)
00 голосов
Код
<?$APPLICATION->IncludeComponent(
   "bitrix:iblock.vote",
   "ajax",
   Array(
      "IBLOCK_TYPE" => "",
      "IBLOCK_ID" => $item["IBLOCK_ID"],
      "ELEMENT_ID" => $item["ID"],
      "MAX_VOTE" => "",
      "VOTE_NAMES" => $item["ID"],
      "DISPLAY_AS_RATING" => "vote_avg",
      "CACHE_TYPE" => $arParams["CACHE_TYPE"],
      "CACHE_TIME" => $arParams["CACHE_TIME"],
   ),
   $component
);?>
ответил 07 Июль, 13 от LEDOKOL (740 баллов)
00 голосов
MyIE, 
нет, этот компонент неинтересен, его работа оставляет желать лучшего, новый рейтинг куда лучше, хоть и дружит только с форумом и блогом.
ответил 11 Окт, 13 от Mauka (320 баллов)
00 голосов
Чем же он плохо работает?
ответил 11 Янв, 14 от LEDOKOL (740 баллов)
00 голосов
Цитата
MyIE пишет:
<?$APPLICATION->IncludeComponent(
"bitrix:iblock.vote",
"ajax",
Array(
"IBLOCK_TYPE" => "",
"IBLOCK_ID" => $item["IBLOCK_ID"],
"ELEMENT_ID" => $item["ID"],
"MAX_VOTE" => "",
"VOTE_NAMES" => $item["ID"],
"DISPLAY_AS_RATING" => "vote_avg",
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
),
$component
У меня его накручивать даже люди далекие от техники приучились
ответил 29 Апр, 14 от mYst (100 баллов)
00 голосов
Здравствуйте! Кто мне подскажет как с помощью сделанного мной php-файла создать собственные инфоблоки (программным путём). Подскажите хотя бы доступ к таблицам базы данных (MySQL), в которых есть информация об инфоблоках  определённой категории с доступом к его полям. У меня в принципе задача такая: у меня есть xml-файл с названиями станций метро (их около 300 штук). Вручную забивать стрёмно, а если сделать читалкe в php, то можно их занести туда очень быстро в виде инфоблока (у меня Битрикс Интернет-магазин).
Я задавал этот вопрос в другой ветке (извиняюсь). Предыдущие сообщения намекают мне на использование компонента bitrix:iblock.vote, но лучше бы мне обеспечить доступ непосредственно к Базе Данных.
ответил 25 Авг, 14 от MaxiM (220 баллов)
00 голосов
Цитата
Вставил в шаблоне компонента bitrix:news.list (для тех, кто захочет попробовать, работает только с отключенным кэшем)
Вот спасибо!smile:) Это спасениеsmile:)
ответил 31 Дек, 14 от Dimanys (100 баллов)
00 голосов
Вячеслав Чешихин,  создать инфоблок можно через API http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/add.php
При чем тут компонент bitrix:iblock.vote, непонятно совсем.
Что то делать напрямую с БД, это не правильно с точки зрения идеологии Битрикс.
ответил 19 Апр, 15 от Reihent (580 баллов)

Похожие вопросы

0 голосов
4 ответов
0 голосов
8 ответов
спросил 22 Июнь, 13 от Fantom (160 баллов)
0 голосов
1 ответ
спросил 08 Авг, 14 от silrage (210 баллов)
0 голосов
6 ответов
спросил 30 Июнь, 13 от Kirora (180 баллов)
+1 голос
1 ответ