Доработка функционала модуля идей

Пару лет назад в ядре битрикса появился интересный модуль - модуль идей (для тех, кто не знает, у битрикса на основании этого модуля есть целый раздел). Суть модуля в том, чтобы пользователи сайта делились своими идеями / желаниями / хотелками, а другие пользователи внедряли эти идеи. Была у меня недавно задача, связанная с данным функционалом - на корпоративном портале нужно было поднять раздел с идеями и немного его доработать. Вот о доработке раздела и пойдет речь

Пару лет назад в ядре битрикса появился интересный модуль - модуль идей (для тех, кто не знает, у битрикса на основании этого модуля есть целый раздел). Суть модуля в том, чтобы пользователи сайта делились своими идеями / желаниями / хотелками, а другие пользователи внедряли эти идеи. Была у меня недавно задача, связанная с данным функционалом - на корпоративном портале нужно было поднять раздел с идеями и немного его доработать. Вот о доработке раздела и пойдет речь

К тексту идей нужно было добавить несколько дополнительных полей...

Начну с того, что модуль идей - это, грубо говоря, надстройка над модулем блогов. Одна идея - это сущность класса CBlogPost. Из чего делаем вывод, что все, что применимо к постам блогов, также применимо и к постам идей.

Для реализации механизма добавленных полей, необходимо создать пользовательские свойства для объекта "BLOG_POST".

Для работы с  пользовательскими свойствами, можно воспользоваться двумя функциями (взял с форума):

Для получения значения/значений свойства:

function GetUserField ($entity_id, $value_id, $property_id)
{
   $arUF = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields ($entity_id, $value_id);
   return $arUF[$property_id]["VALUE"];
} 

тут: $entity_id - сущность, объект, для которого создано свойство для идей; $value_id - ID идеи; $property_id - идентификатор пользовательского свойства (Название свойства).

Пример использования функции:

	 $arResult['UF_CATEGORY_CODE'] = GetUserField("BLOG_POST", intval($ID), "UF_CATEGORY_CODE");
Для установки значений используется функция: 
function SetUserField ($entity_id, $value_id, $uf_id, $uf_value)
{
   return $GLOBALS["USER_FIELD_MANAGER"]->Update ($entity_id, $value_id,
   Array ($uf_id => $uf_value));
} 

Пример использования функции:

	 SetUserField ("BLOG_POST", intval($ID), "UF_CONFIRMED", "1");

Эти функции могут пригодиться в том случае, если вы планируете делать какие-то свои обработки. Если же для своих целей вы выбрали комплексный компонент идей, то нужно просто в параметр POST_PROPERTY дописать все свойства. Тогда нужно будет только дописать в шаблоне подачи новой формы вывода этих свойств, а в компонентах показа идеи - вывод свойств с помощью функции GetUserField

Количество показов: 2794
30.08.2015

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.