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

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

840
30.08.2015

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

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

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

Начну с того, что модуль идей - это, грубо говоря, надстройка над модулем блогов. Одна идея - это сущность класса 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



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

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