April 11, 2013

Битрикс. Forum.comments. Не указан тип сущности.

Или же «Неверный тип сущности»… Да да, такими супер информативными сообщениями радует нас порой компонент для прикручивания комментариев. Немного погуглив выяснил что нужные параметры которые от нас требует Битрикс называются: ENTITY_TYPE, ENTITY_ID и ENTITY_XML_ID.

Причем:

  1. В настройках компонента нету таких настроек (как это вообще возможно то???)

  2. По данному компоненту отсутствует документация.

В итоге за разъяснениями пришлось лезть в исходный код компонента: /bitrix/components/bitrix/forum.comments/component.php где в первых строчках кода нашлась разгадка.

<?php
if (!CModule::IncludeModule("forum")):
    ShowError(GetMessage("F_NO_MODULE"));
    return 0;
elseif (intVal($arParams["FORUM_ID"]) <= 0):
    ShowError(GetMessage("F_ERR_FID_EMPTY"));
    return 0;
elseif (empty($arParams["ENTITY_TYPE"])):
    ShowError(GetMessage("F_ERR_ENT_EMPTY"));
    return 0;
elseif (strlen(trim($arParams["ENTITY_TYPE"])) !== 2 ):
    ShowError(GetMessage("F_ERR_ENT_INVALID"));
    return 0;
elseif (empty($arParams["ENTITY_XML_ID"]) || (intval($arParams['ENTITY_ID']) <= 0 && $arParams['ENTITY_ID'] !== 0)):
    ShowError(GetMessage("F_ERR_EID_EMPTY"));
    return 0;
endif;

Выходит что в случае с «Не указан тип сущности» мы спотыкаемся на отсутствии или пустом значении параметра ENTITY_TYPE, в случае с «Неверный тип сущности» это всего лишь означает что тип сущности должен состоять из 2 символов (а мужики то не знают!).

Ну и напоследок «Не указан тип элемента» - цифровой ENTITY_ID должен быть больше 0 и ENTITY_XML_ID не должен быть пуст.

По сути ENTITY_ID должен содержать ID элемента инфоблока к которому собственно привязываются комментарии.

Все эти три параметра нужно ручками прописать в коде вызова компонента. Вот такая ботва.

Пример рабочего вызова компонента:

<?php
$APPLICATION->IncludeComponent(
 "bitrix:forum.comments",
 ".default",
 Array(
 "FORUM_ID" => "2",
 "POST_FIRST_MESSAGE" => "Y",
 "URL_TEMPLATES_READ" => "",
 "URL_TEMPLATES_PROFILE_VIEW" => "",
 "ENTITY_TYPE" => "s1",
 "ENTITY_ID" => "1",
 "ENTITY_XML_ID" => "Название темы",
 "CACHE_TYPE" => "A",
 ...
 "ALLOW_NL2BR" => "Y"
 )
);?>

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

Другие проекты:

telegram-catalog.top

rhamdeew © 2020