ragnar_ok
@ragnar_ok

Как правильно вывести значение свойства по умолчанию?

Разработан компонент с формой обратной связи (получает данные оставленные пользователем в input'ах и заносит их в инфоблок). Вывожу на странице через bitrix:news.list. Нужно добавить новое свойство с привязкой к пользователю. При этом в случае, если VALUE свойства пустое, нужно выводить "Заявка открыта". Однако логика компонента такова, что в случае, если VALUE свойства пустое, то в DISPLAY_PROPERTIES оно не попадает. Мне видится самым корректным такой подход:
  • Создать свойство типа "Строка";
  • Задать <input type="hidden"> с name этого свойства и value="Заявка открыта", и, таким образом, добавлять элемент в DISPLAY_PROPERTIES;
  • Затем выводить его на странице и добавить возможность менять значение свойства с помощью CIBlockElement::Update на ID пользователя;

Как правильно вывести значение свойства по умолчанию?
  • Вопрос задан
  • 889 просмотров
Решения вопроса 1
ragnar_ok
@ragnar_ok Автор вопроса
Позаимствовал в контроллере компонента такой подход. В случае, если свойство DEFAULT_VALUE заполнено, то также вносит в DISPLAY_PROPERTIES.
foreach($arResult["ITEMS"] as &$arItem)
{
    foreach($arParams["PROPERTY_CODE"] as &$pid)
    {
        $prop = $arItem["PROPERTIES"][$pid];
        if(
            (is_array($prop["DEFAULT_VALUE"]) && count($prop["DEFAULT_VALUE"])>0)
            || (!is_array($prop["DEFAULT_VALUE"]) && strlen($prop["DEFAULT_VALUE"])>0)
        )
        {
            $arItem["DISPLAY_PROPERTIES"][$pid] = CIBlockFormatProperties::GetDisplayValue($arItem, $prop, "news_out");
        }
    }
}
unset($arItem, $pid);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы