Skip to content

Instantly share code, notes, and snippets.

@EvilWolf
Created August 2, 2017 09:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EvilWolf/0155f11f14a231f840bd916b274e4186 to your computer and use it in GitHub Desktop.
Save EvilWolf/0155f11f14a231f840bd916b274e4186 to your computer and use it in GitHub Desktop.
Параметры компонента 1С-Битрикс
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
/** @var array $arCurrentValues */
// Подключение IBlock;
if (!CModule::IncludeModule("iblock"))
return;
// Типы инфоблоков
$arTypesEx = CIBlockParameters::GetIBlockTypes(["-" => " "]);
// Списки инфоблоков
$arIBlocks = [];
$db_iblock = CIBlock::GetList(
["SORT" => "ASC"],
["SITE_ID" => $_REQUEST["site"], "TYPE" => ($arCurrentValues["IBLOCK_TYPE"] != "-" ? $arCurrentValues["IBLOCK_TYPE"] : "")]
);
while ($arRes = $db_iblock->Fetch())
$arIBlocks[$arRes["ID"]] = $arRes["NAME"];
// Сортировки
$arSorts = ["ASC" => GetMessage("T_IBLOCK_DESC_ASC"), "DESC" => GetMessage("T_IBLOCK_DESC_DESC")];
$arSortFields = [
"ID" => GetMessage("T_IBLOCK_DESC_FID"),
"NAME" => GetMessage("T_IBLOCK_DESC_FNAME"),
"ACTIVE_FROM" => GetMessage("T_IBLOCK_DESC_FACT"),
"SORT" => GetMessage("T_IBLOCK_DESC_FSORT"),
"TIMESTAMP_X" => GetMessage("T_IBLOCK_DESC_FTSAMP")
];
// Свойства компонентов
$arProperty_LNS = [];
$rsProp = CIBlockProperty::GetList(
["sort" => "asc", "name" => "asc"],
["ACTIVE" => "Y", "IBLOCK_ID" => (isset($arCurrentValues["IBLOCK_ID"]) ? $arCurrentValues["IBLOCK_ID"] : $arCurrentValues["ID"])]
);
while ($arr = $rsProp->Fetch())
$arProperty_LNS[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"];
// Список параметров компонента
$arComponentParameters = [
"GROUPS" => [],
"PARAMETERS" => [
"IBLOCK_TYPE" => [
"PARENT" => "BASE",
"NAME" => GetMessage("T_IBLOCK_DESC_LIST_TYPE"),
"TYPE" => "LIST",
"VALUES" => $arTypesEx,
"DEFAULT" => "news",
"REFRESH" => "Y",
],
"IBLOCK_ID" => [
"PARENT" => "BASE",
"NAME" => GetMessage("T_IBLOCK_DESC_LIST_ID"),
"TYPE" => "LIST",
"VALUES" => $arIBlocks,
"DEFAULT" => '={$_REQUEST["ID"]}',
"ADDITIONAL_VALUES" => "Y",
"REFRESH" => "Y",
],
"NEWS_COUNT" => [
"PARENT" => "BASE",
"NAME" => GetMessage("T_IBLOCK_DESC_LIST_CONT"),
"TYPE" => "STRING",
"DEFAULT" => "20",
],
"SORT_BY1" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_DESC_IBORD1"),
"TYPE" => "LIST",
"DEFAULT" => "ACTIVE_FROM",
"VALUES" => $arSortFields,
"ADDITIONAL_VALUES" => "Y",
],
"SORT_ORDER1" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_DESC_IBBY1"),
"TYPE" => "LIST",
"DEFAULT" => "DESC",
"VALUES" => $arSorts,
"ADDITIONAL_VALUES" => "Y",
],
"SORT_BY2" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_DESC_IBORD2"),
"TYPE" => "LIST",
"DEFAULT" => "SORT",
"VALUES" => $arSortFields,
"ADDITIONAL_VALUES" => "Y",
],
"SORT_ORDER2" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_DESC_IBBY2"),
"TYPE" => "LIST",
"DEFAULT" => "ASC",
"VALUES" => $arSorts,
"ADDITIONAL_VALUES" => "Y",
],
"FILTER_NAME" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_FILTER"),
"TYPE" => "STRING",
"DEFAULT" => "",
],
"FIELD_CODE" => CIBlockParameters::GetFieldCode(GetMessage("IBLOCK_FIELD"), "DATA_SOURCE"),
"PROPERTY_CODE" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_PROPERTY"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"VALUES" => $arProperty_LNS,
"ADDITIONAL_VALUES" => "Y",
],
"CHECK_DATES" => [
"PARENT" => "DATA_SOURCE",
"NAME" => GetMessage("T_IBLOCK_DESC_CHECK_DATES"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
],
"DETAIL_URL" => CIBlockParameters::GetPathTemplateParam(
"DETAIL",
"DETAIL_URL",
GetMessage("T_IBLOCK_DESC_DETAIL_PAGE_URL"),
"",
"URL_TEMPLATES"
),
"CACHE_TIME" => ["DEFAULT" => 36000000],
"CACHE_FILTER" => [
"PARENT" => "CACHE_SETTINGS",
"NAME" => GetMessage("IBLOCK_CACHE_FILTER"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "N",
],
"CACHE_GROUPS" => [
"PARENT" => "CACHE_SETTINGS",
"NAME" => GetMessage("CP_BNL_CACHE_GROUPS"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
],
],
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment