Рейтинг: 0.6111  
Новая
Предложил de1eted 20.11.2015 12:08:13

Создание групп свойств компонента из шаблона

В параметрах компонента мы можем задать группировку свойств:

$arComponentParameters = array(
   "GROUPS" => array(
      "PARAMS" => array(
         "NAME" => GetMessage("IBLOCK_PARAMS"),
         "SORT" => "200"
      ),
      "ACCESS" => array(
         "NAME" => GetMessage("IBLOCK_ACCESS"),
         "SORT" => "400",
      ),
      "FIELDS" => array(
         "NAME" => GetMessage("IBLOCK_FIELDS"),
         "SORT" => "300",
      ),
      "TITLES" => array(
         "NAME" => GetMessage("IBLOCK_TITLES"),
         "SORT" => "1000",
      ),
   ),
... 
А в параметрах шаблона можно задать только сами параметры.
Было бы удобно иметь возможность задавать и группы в файле <путь к шаблону>/.parameters.php
Нужно добавить пять строчек в файл bitrix/modules/main/classes/general/component_util.php [466]:

      if ($templateProperties && is_array($templateProperties))
      {
         /* Добавить */
         if(is_array($arComponentParameters["GROUPS"]))
            $arComponentParameters["GROUPS"] = array_merge ($arComponentParameters["GROUPS"], $templateProperties["TEMPLATE_GROUPS"]);
         else
            $arComponentParameters["GROUPS"] = $templateProperties["TEMPLATE_GROUPS"];
         unset($templateProperties["TEMPLATE_GROUPS"]);
         /* эти пять строчек */ 
            
         if(is_array($arComponentParameters["PARAMETERS"]))
            $arComponentParameters["PARAMETERS"] = array_merge ($arComponentParameters["PARAMETERS"], $templateProperties);
         else
            $arComponentParameters["PARAMETERS"] = $templateProperties;
      }