- element.php
В данном файле необходимо добавить несколько раз.
В самом начале, после подключения пролога необходимо добавить эти строчки
use Bitrix\Main\Loader;
use intec\core\helpers\ArrayHelper;
use intec\core\helpers\Type;
use intec\core\helpers\ArrayHelper;
use intec\core\helpers\StringHelper;
Затем до начала верстки (до первого div), нужно добавить следующий код
$arIBlock = $arResult['IBLOCK'];
$arSection = $arResult['SECTION'];
$arArticlesExtending = [
'SHOW' => Y,
'PROPERTY' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_PROPERTY'),
'TEMPLATE' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_TEMPLATE'),
'TITLE' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_TITLE'),
'QUANTITY' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_QUANTITY'),
'PARAMETERS' => []
];
if (empty($arArticlesExtending['TEMPLATE']))
$arArticlesExtending['SHOW'] = false;
if ($arArticlesExtending['SHOW']) {
$sPrefix = 'SECTIONS_ARTICLES_EXTENDING_';
$arArticlesExtending['TEMPLATE'] = 'news.'.$arArticlesExtending['TEMPLATE'];
foreach ($arParams as $sKey => $mValue) {
if (!StringHelper::startsWith($sKey, $sPrefix))
continue;
$sKey = StringHelper::cut(
$sKey,
StringHelper::length($sPrefix)
);
if ($sKey === 'TEMPLATE')
continue;
$arArticlesExtending['PARAMETERS'][$sKey] = $mValue;
}
$arArticlesExtending['PARAMETERS'] = ArrayHelper::merge($arArticlesExtending['PARAMETERS'], [
'SECTION_USER_FIELDS' => array(),
'SET_TITLE' => 'N',
'ADD_SECTIONS_CHAIN' => 'N',
'SET_BROWSER_TITLE' => 'N',
'INCLUDE_IBLOCK_INTO_CHAIN' => 'N',
'CURRENCY_ID' => $arParams['CURRENCY_ID'],
'CONSENT_URL' => $arParams['CONSENT_URL'],
'COMPARE_NAME' => $arParams['COMPARE_NAME'],
'USE_COMPARE' => $arParams['USE_COMPARE'],
'WIDE' => 'Y'
]);
}
Затем после подключения компонента bitrix:catalog.element необходимо вставить следующий код
$APPLICATION->IncludeComponent('intec.seo:iblocks.metadata.loader', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'ELEMENT_ID' => $elementId,
'TYPE' => 'element',
'MODE' => 'single',
'METADATA_SET' => 'Y',
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
$APPLICATION->IncludeComponent('intec.seo:iblocks.articles.extend.filter', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'SECTION_ID' => $arSection['ID'],
'ELEMENT_ID' => $elementId,
'QUANTITY' => $arArticlesExtending['QUANTITY'],
'CURRENT_URL' => $APPLICATION->GetCurPage(),
'FILTER_NAME' => 'arCatalogArticlesExtendingFilter',
'INCLUDE_SUBSECTIONS' => 'Y',
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
$arArticlesExtending['PARAMETERS']['IBLOCK_ID'] = $arArticlesExtending['RESULT']['IBLOCK']['ID'];
$arArticlesExtending['PARAMETERS']['IBLOCK_TYPE'] = $arArticlesExtending['RESULT']['IBLOCK']['IBLOCK_TYPE_ID'];
$arArticlesExtending['PARAMETERS']['ELEMENT_SORT_ORDER'] = $arArticlesExtending['RESULT']['FILTER']['ID'];
$APPLICATION->IncludeComponent(
'bitrix:news.list',
$arArticlesExtending['TEMPLATE'],
$arArticlesExtending['PARAMETERS'],
$component);
- section.php
Данный файл расположен там же где и element.php
Рабочий стол > Контент > Структура сайта > Файлы и папки > bitrix > templates > название шаблона сайта > components > bitrix > catalog > название шаблона каталога
В данном файле найдите инициализацию фильтра для разделов и добавьте там фильтр для элементов
$arFilterElement = array(
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ACTIVE" => "Y",
"GLOBAL_ACTIVE" => "Y",
"SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
"INCLUDE_SUBSECTIONS" => "Y"
);
Затем в этом же файле, после строчки,
$dbRes = CIBlockSection::GetList(array(), $arFilter, false, array("ID"));
необходимо добавить еще код
$elementCount = CIBlockElement::GetList(array(), $arFilterElement, false, array("ID"));
$elementCount = $elementCount->SelectedRowsCount();
- section_vertical.php
В самом начале, после подключения пролога необходимо добавить эти строчки
use Bitrix\Main\Loader;
use Bitrix\Main\ModuleManager;
use intec\Core;
use intec\core\bitrix\Component;
use intec\core\helpers\ArrayHelper;
use intec\core\helpers\Html;
use intec\core\helpers\Type;
use intec\core\helpers\StringHelper;

Затем необходимо добавить следующий код
$sPrefix = 'INTEREST_PRODUCTS_';
$iLength = StringHelper::length($sPrefix);
$arInterestProductsProperties = [];
foreach ($arParams as $sKey => $sValue) {
if (!StringHelper::startsWith($sKey, $sPrefix))
continue;
$sKey = StringHelper::cut($sKey, $iLength);
$arInterestProductsProperties[$sKey] = $sValue;
}
unset($sPrefix, $iLength, $sKey, $sValue);
$sFilterKey = null;
$sFilterValue = null;
if (!empty($arResult['PRODUCTS']['INTEREST']['CATEGORIES']) && $arResult['PRODUCTS']['INTEREST']['SHOW']) {
if ($arResult['PRODUCTS']['INTEREST']['PROPERTY']['USE']) {
$GLOBALS['arrFiltersInterest'] = array('PROPERTY_' . $arResult['PRODUCTS']['INTEREST']['PROPERTY']['VALUE'] . '_VALUE' => $arResult['PRODUCTS']['INTEREST']['PROPERTY']['NAME']);
$sFilterKey = 'FILTER_NAME';
$sFilterValue = 'arrFiltersInterest';
} else {
if ($arResult['PRODUCTS']['INTEREST']['CATEGORIES'] == 1 && !empty($arResult['SECTION']['IBLOCK_SECTION_ID'])) {
$sFilterKey = 'SECTION_ID';
$sFilterValue = $arResult['SECTION']['IBLOCK_SECTION_ID'];
} elseif ($arResult['PRODUCTS']['INTEREST']['CATEGORIES'] > 1) {
$sFilterKey = 'SECTION_ID';
$sFilterValue = $arResult['PRODUCTS']['INTEREST']['CATEGORIES'];
}
}
}
$arInterestProductsProperties = ArrayHelper::merge($arInterestProductsProperties, [
'IBLOCK_ID' => $arParams['IBLOCK_ID'],
$sFilterKey => $sFilterValue,
'PROPERTY_USE' => $arResult['PRODUCTS']['INTEREST']['PROPERTY']['USE'],
'ELEMENT_COUNT' => $arResult['PRODUCTS']['INTEREST']['COUNT'],
'PRICE_CODE' => $arParams['PRICE_CODE'],
'SET_BROWSER_TITLE' => 'N',
'SET_TITLE' => 'N',
]);
unset($sFilterKey, $sFilterValue);
$arIBlock = $arResult['IBLOCK'];
$arSection = $arResult['SECTION'];
$sLevel = 'CHILDREN';
$arParams = ArrayHelper::merge([
'SECTIONS_ARTICLES_EXTENDING_PROPERTY' => 'UF_SECTIONS_ARTICLES',
'SECTIONS_ARTICLES_EXTENDING_TEMPLATE' => null,
], $arParams);
$arSectionsExtending = [
'SHOW' => Y,
'COUNT' => ArrayHelper::getValue($arParams, 'SECTIONS_'.$sLevel.'_EXTENDING_COUNT'),
'PROPERTY' => ArrayHelper::getValue($arParams, 'SECTIONS_'.$sLevel.'_EXTENDING_PROPERTY'),
'TEMPLATE' => ArrayHelper::getValue($arParams, 'SECTIONS_'.$sLevel.'_EXTENDING_TEMPLATE'),
'TITLE' => ArrayHelper::getValue($arParams, 'SECTIONS_'.$sLevel.'_EXTENDING_TITLE'),
'PARAMETERS' => []
];
$arSectionsExtending['COUNT'] = Type::toInteger($arSectionsExtending['COUNT']);
if ($arSectionsExtending['COUNT'] <= 0)
$arSectionsExtending['SHOW'] = false;
if ($arParams['SECTIONS_'.$sLevel.'_EXTENDING_USE'] !== 'Y')
$arSectionsExtending['SHOW'] = false;
if (empty($arSectionsExtending['TEMPLATE']))
$arSectionsExtending['SHOW'] = false;
if ($arSectionsExtending['SHOW']) {
$sPrefix = 'SECTIONS_'.$sLevel.'_EXTENDING_';
$arSectionsExtending['TEMPLATE'] = 'products.small.'.$arSectionsExtending['TEMPLATE'];
foreach ($arParams as $sKey => $mValue) {
if (!StringHelper::startsWith($sKey, $sPrefix))
continue;
$sKey = StringHelper::cut(
$sKey,
StringHelper::length($sPrefix)
);
if ($sKey === 'TEMPLATE')
continue;
$arSectionsExtending['PARAMETERS'][$sKey] = $mValue;
}
$arSectionsExtending['PARAMETERS'] = ArrayHelper::merge($arSectionsExtending['PARAMETERS'], [
'IBLOCK_TYPE' => $arParams['IBLOCK_TYPE'],
'IBLOCK_ID' => $arParams['IBLOCK_ID'],
'SET_TITLE' => 'N',
'SECTION_USER_FIELDS' => array(),
'SHOW_ALL_WO_SECTION' => 'Y',
'PRICE_CODE' => $arParams['PRICE_CODE'],
'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
'CURRENCY_ID' => $arParams['CURRENCY_ID'],
'BASKET_URL' => $arParams['BASKET_URL'],
'CONSENT_URL' => $arParams['CONSENT_URL'],
'COMPARE_NAME' => $arParams['COMPARE_NAME'],
'USE_COMPARE' => $arParams['USE_COMPARE'],
'WIDE' => 'Y'
]);
}
$arArticlesExtending = [
'SHOW' => Y,
'PROPERTY' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_PROPERTY'),
'TEMPLATE' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_TEMPLATE'),
'TITLE' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_TITLE'),
'QUANTITY' => ArrayHelper::getValue($arParams, 'SECTIONS_ARTICLES_EXTENDING_QUANTITY'),
'PARAMETERS' => []
];
if (empty($arArticlesExtending['TEMPLATE']))
$arArticlesExtending['SHOW'] = false;
if ($arArticlesExtending['SHOW']) {
$sPrefix = 'SECTIONS_ARTICLES_EXTENDING_';
$arArticlesExtending['TEMPLATE'] = 'news.'.$arArticlesExtending['TEMPLATE'];
foreach ($arParams as $sKey => $mValue) {
if (!StringHelper::startsWith($sKey, $sPrefix))
continue;
$sKey = StringHelper::cut(
$sKey,
StringHelper::length($sPrefix)
);
if ($sKey === 'TEMPLATE')
continue;
$arArticlesExtending['PARAMETERS'][$sKey] = $mValue;
}
$arArticlesExtending['PARAMETERS'] = ArrayHelper::merge($arArticlesExtending['PARAMETERS'], [
'SECTION_USER_FIELDS' => array(),
'SET_TITLE' => 'N',
'ADD_SECTIONS_CHAIN' => 'N',
'SET_BROWSER_TITLE' => 'N',
'INCLUDE_IBLOCK_INTO_CHAIN' => 'N',
'CURRENCY_ID' => $arParams['CURRENCY_ID'],
'CONSENT_URL' => $arParams['CONSENT_URL'],
'COMPARE_NAME' => $arParams['COMPARE_NAME'],
'USE_COMPARE' => $arParams['USE_COMPARE'],
'WIDE' => 'Y'
]);
}
$arSectionsExtending['PARAMETERS']['ELEMENT_SORT_FIELD'] = 'ID';
$arArticlesExtending['PARAMETERS']['FILTER_NAME'] = 'arCatalogArticlesExtendingFilter';
$arArticlesExtending['PARAMETERS']['SORT_BY1'] = 'ID';
$arSectionsExtending['PARAMETERS']['FILTER_NAME'] = 'arCatalogSectionsExtendingFilter';
$arParams = ArrayHelper::merge([
'TAGS_USE' => 'N',
'TAGS_TEMPLATE' => null,
'TAGS_PROPERTY' => null,
'POSITION' => 'top',
'TAGS_COUNT' => 'Y',
'TAGS_VARIABLE_TAGS' => 'tags'
], $arParams);
$arTags = [
'USE' => $arParams['TAGS_USE'] === 'Y',
'SHOW' => false,
'POSITION' => $arParams['TAGS_POSITION'],
'TEMPLATE' => $arParams['TAGS_TEMPLATE'],
'PROPERTY' => $arParams['TAGS_PROPERTY'],
'PARAMETERS' => []
];
if ($sLevel === 'ROOT')
$arTags['USE'] = false;
$arTags['SHOW'] = $arTags['USE'];
if (empty($arTags['TEMPLATE']))
$arTags['SHOW'] = false;
if (empty($arTags['PROPERTY']))
$arTags['SHOW'] = false;
if ($arTags['SHOW']) {
$sPrefix = 'TAGS_';
foreach ($arParams as $sKey => $mValue) {
if (!StringHelper::startsWith($sKey, $sPrefix))
continue;
$sKey = StringHelper::cut(
$sKey,
StringHelper::length($sPrefix)
);
if ($sKey === 'TEMPLATE')
continue;
$arTags['PARAMETERS'][$sKey] = $mValue;
};
foreach ($arResult['PARAMETERS']['COMMON'] as $sProperty)
$arTags['PARAMETERS'][$sProperty] = ArrayHelper::getValue($arParams, $sProperty);
$arTags['PARAMETERS'] = ArrayHelper::merge($arTags['PARAMETERS'], [
'IBLOCK_TYPE' => $arParams['IBLOCK_TYPE'],
'IBLOCK_ID' => $arParams['IBLOCK_ID'],
'SECTION_ID' => !empty($arSection) ? $arSection['ID'] : false,
'SECTION_SUBSECTIONS' => $arParams['INCLUDE_SUBSECTIONS'],
'PROPERTY' => $arTags['PROPERTY'],
'COUNT' => $arParams['TAGS_COUNT'],
'USED' => 'Y',
'FILTER_NAME' => $arParams['FILTER_NAME'],
'VARIABLE_TAGS' => $arParams['TAGS_VARIABLE_TAGS'],
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
]);
};
Для отображения Облака тегов укажите данную строчку там где необходимо их вывести, например перед фильтром.
$APPLICATION->ShowViewContent($sTemplateId.'-tags');
Затем перед подключением компонента bitrix:catalog.smart.filter или bitrix:catalog.section (Желательно) подключить компонент meta-информации: необходимо добавить этот код
$APPLICATION->IncludeComponent('intec.seo:iblocks.section.extend.filter', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'SECTION_ID' => $arSection['ID'],
'SECTIONS_ID' => ArrayHelper::getValue($arSection, $arSectionsExtending['PROPERTY']),
'COUNT' => $arSectionsExtending['COUNT'],
'HAS_COUNT' => $elementCount,
'CURRENT_URL' => $APPLICATION->GetCurPage(),
'FILTER_NAME' => 'arCatalogSectionsExtendingFilter',
'INCLUDE_SUBSECTIONS' => 'Y',
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
После подключения компонента bitrix:catalog.smart.filter или bitrix:catalog.section (Желательно) подключить компонент meta-информации и статей из seo модуля:
$APPLICATION->IncludeComponent('intec.seo:iblocks.metadata.loader', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'SECTION_ID' => $arSection['ID'],
'TYPE' => 'section',
'MODE' => 'single',
'METADATA_SET' => 'Y',
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
$arArticlesExtending['RESULT'] = $APPLICATION->IncludeComponent('intec.seo:iblocks.articles.extend.filter', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'SECTION_ID' => $arSection['ID'],
'ELEMENT_ID' => null,
'FILTER_MODE' => 'many',
'QUANTITY' => $arArticlesExtending['QUANTITY'],
'CURRENT_URL' => $APPLICATION->GetCurPage(),
'FILTER_NAME' => 'arCatalogArticlesExtendingFilter',
'INCLUDE_SUBSECTIONS' => 'Y',
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
if (!empty($arArticlesExtending['RESULT']) && !empty($arArticlesExtending['RESULT']['FILTER'])) {
if ($arArticlesExtending['RESULT']['FILTER_MODE_SINGLE'])
$arArticlesExtending['PARAMETERS']['IBLOCK_ID'] = $arArticlesExtending['RESULT']['FILTER']['IBLOCK_ID'];
$arArticlesExtending['PARAMETERS']['SORT_ORDER1'] = $arArticlesExtending['RESULT']['FILTER']['ID'];
if (!empty($arArticlesExtending['TITLE']) || Type::isNumeric($arArticlesExtending['TITLE'])) {
echo $arArticlesExtending['TITLE'];
} ;
$APPLICATION->IncludeComponent(
'bitrix:news.list',
$arArticlesExtending['TEMPLATE'],
$arArticlesExtending['PARAMETERS'],
$component
);
};
$APPLICATION->IncludeComponent('intec.seo:filter.meta', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'SECTION_ID' => $arSection['ID'],
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
if ($arTags['USE']) {
$this->SetViewTarget($sTemplateId.'-tags');
$APPLICATION->IncludeComponent('intec.seo:filter.tags', '', [
'IBLOCK_ID' => $arIBlock['ID'],
'SECTION_ID' => $arSection['ID'],
'INCLUDE_SUBSECTIONS' => $arParams['INCLUDE_SUBSECTIONS'],
'CACHE_TYPE' => $arParams['CACHE_TYPE'],
'CACHE_TIME' => $arParams['CACHE_TIME']
], $component);
$this->EndViewTarget();
};
$APPLICATION->IncludeComponent(
'bitrix:catalog.section',
'products.small.6',
$arInterestProductsProperties,
$component
) ?>
- Аналогичные действия необходимо произвести с файлом section_horizontal.php
- Необходимо создать файл result_modifier.php и весь стандартный код в нем заменить на этот
use Bitrix\Main\Data\Cache;
use Bitrix\Main\Loader;
use intec\core\collections\Arrays;
use intec\core\helpers\ArrayHelper;
use intec\core\helpers\Html;
use intec\core\helpers\Type;
/**
* @var array $arParams
* @var array $arResult
* @var CBitrixComponentTemplate $this
*/
if (!Loader::includeModule('iblock'))
return;
if (!Loader::includeModule('intec.core'))
return;
$arParams = ArrayHelper::merge([
'INTEREST_PRODUCTS_SHOW' => 'N',
'INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE' => 'N',
'INTEREST_PRODUCTS_CATEGORIES_PROPERTY' => null,
'INTEREST_PRODUCTS_CATEGORIES' => null,
'INTEREST_PRODUCTS_TITLE' => null,
'INTEREST_PRODUCTS_POSITION' => 'footer',
'ADDITIONAL_ARTICLES_SHOW' => 'N',
'ADDITIONAL_ARTICLES_HEADER_SHOW' => 'N',
'ADDITIONAL_ARTICLES_HEADER_TEXT' => null,
], $arParams);
if (empty($arParams['FILTER_NAME']))
$arParams['FILTER_NAME'] = 'arrCatalogFilter';
$arIBlock = null;
$arSection = null;
if (!empty($arParams['IBLOCK_ID'])) {
$oCache = Cache::createInstance();
$arFilter = [
'ID' => $arParams['IBLOCK_ID'],
'ACTIVE' => 'Y'
];
if ($oCache->initCache(36000, 'IBLOCK'.serialize($arFilter), '/iblock/catalog')) {
$arIBlock = $oCache->getVars();
} else if ($oCache->startDataCache()) {
$arIBlocks = Arrays::fromDBResult(CIBlock::GetList([], $arFilter));
$arIBlock = $arIBlocks->getFirst();
$oCache->endDataCache($arIBlock);
}
}
if (
!empty($arResult['VARIABLES']['SECTION_ID']) ||
!empty($arResult['VARIABLES']['SECTION_CODE'])
) {
$oCache = Cache::createInstance();
$arFilter = [
'IBLOCK_ID' => $arParams['IBLOCK_ID'],
'ACTIVE' => 'Y',
'GLOBAL_ACTIVE' => 'Y'
];
if (!empty($arResult['VARIABLES']['SECTION_ID'])) {
$arFilter['ID'] = $arResult['VARIABLES']['SECTION_ID'];
} else {
$arFilter['CODE'] = $arResult['VARIABLES']['SECTION_CODE'];
}
if ($oCache->initCache(36000, 'SECTION'.serialize($arFilter), '/iblock/catalog')) {
$arSection = $oCache->getVars();
} else if ($oCache->startDataCache()) {
$arSections = Arrays::fromDBResult(CIBlockSection::GetList([], $arFilter, false, [
'*',
'UF_*'
]));
$arSection = $arSections->getFirst();
$oCache->endDataCache($arSection);
}
}
$arResult['IBLOCK'] = $arIBlock;
$arResult['SECTION'] = $arSection;
$arResult['PRODUCTS'] = [
'INTEREST' => [
'SHOW' => $arParams['INTEREST_PRODUCTS_SHOW'] === 'Y',
'PROPERTY' => [
'USE' => $arParams['INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE'] === 'Y',
'VALUE' => $arParams['INTEREST_PRODUCTS_CATEGORIES_PROPERTY'],
'NAME' => null,
],
'TITLE' => $arParams['INTEREST_PRODUCTS_TITLE'],
'COUNT' => $arParams['INTEREST_PRODUCTS_COUNT'] > 0 ? $arParams['INTEREST_PRODUCTS_COUNT'] : 1,
'POSITION' => $arParams['INTEREST_PRODUCTS_POSITION'],
'CATEGORIES' => $arParams['INTEREST_PRODUCTS_CATEGORIES']
],
];
$arResult['ADDITIONAL'] = [
'ARTICLES' => [
'SHOW' => $arParams['ADDITIONAL_ARTICLES_SHOW'] === 'Y' && !empty($arParams['PROPERTY_ADDITIONAL_ARTICLES']),
'HEADER' => [
'SHOW' => $arParams['ADDITIONAL_ARTICLES_HEADER_SHOW'] === 'Y',
'TEXT' => $arParams['~ADDITIONAL_ARTICLES_HEADER_TEXT']
]
],
];
$arAdditional = function ($paramName) use (&$arResult, &$arParams) {
$arAdditional = [];
if (!empty($arParams[$paramName])) {
$arProperty = ArrayHelper::getValue($arResult, [
'SECTION',
$arParams[$paramName]
]);
if (!empty($arProperty)) {
foreach ($arProperty as $sValue) {
if (!empty($sValue))
$arAdditional[] = $sValue;
}
}
}
return $arAdditional;
};
$arAdditionalArticles = $arAdditional('PROPERTY_ADDITIONAL_ARTICLES');
if ($arResult['ADDITIONAL']['ARTICLES']['SHOW'] && empty($arAdditionalArticles))
$arResult['ADDITIONAL']['ARTICLES']['SHOW'] = false;
if (!empty($arAdditionalArticles))
$arResult['ADDITIONAL']['ARTICLES']['VALUE'] = $arAdditionalArticles;
unset($arAdditionalArticles);
$arResult['PARAMETERS'] = [
'COMMON' => [
'FORM_ID',
'FORM_TEMPLATE',
'FORM_PROPERTY_PRODUCT',
'PROPERTY_MARKS_RECOMMEND',
'PROPERTY_MARKS_NEW',
'PROPERTY_MARKS_HIT',
'PROPERTY_ORDER_USE',
'CONSENT_URL',
'LAZY_LOAD',
'VOTE_MODE',
'DELAY_USE',
'QUANTITY_MODE',
'QUANTITY_BOUNDS_FEW',
'QUANTITY_BOUNDS_MANY',
'VIDEO_IBLOCK_TYPE',
'VIDEO_IBLOCK_ID',
'VIDEO_PROPERTY_URL',
'SERVICES_IBLOCK_TYPE',
'SERVICES_IBLOCK_ID',
'REVIEWS_IBLOCK_TYPE',
'REVIEWS_IBLOCK_ID',
'REVIEWS_PROPERTY_ELEMENT_ID',
'REVIEWS_USE_CAPTCHA',
'PROPERTY_ARTICLE',
'PROPERTY_BRAND',
'PROPERTY_PICTURES',
'PROPERTY_SERVICES',
'PROPERTY_DOCUMENTS',
'PROPERTY_ADDITIONAL',
'PROPERTY_ASSOCIATED',
'PROPERTY_RECOMMENDED',
'PROPERTY_VIDEO',
'OFFERS_PROPERTY_ARTICLE',
'OFFERS_PROPERTY_PICTURES',
'CONVERT_CURRENCY',
'CURRENCY_ID',
'PRICE_CODE'
]
];
if ($arParams['SEF_TABS_USE'] !== 'Y') {
unset($arResult['URL_TEMPLATES']['tabs']);
unset($arResult['VARIABLES']['TAB']);
}
if ($arParams['SEF_MODE'] === 'N') {
if ($arParams['SEF_TABS_USE'] === 'Y') {
$arResult['URL_TEMPLATES']['tabs'] = Html::encode($APPLICATION->GetCurPage()).'?'.
$arResult['ALIASES']['SECTION_ID'].'=#SECTION_ID#&'.
$arResult['ALIASES']['ELEMENT_ID'].'=#ELEMENT_ID#&'.
$arResult['ALIASES']['TAB'].'=#TAB#';
}
}
if ($arResult['PRODUCTS']['INTEREST']['PROPERTY']['USE']) {
$property_name = CIBlockPropertyEnum::GetList(Array(), Array(
"IBLOCK_ID" => $arIBlock['ID'],
"CODE" => $arResult['PRODUCTS']['INTEREST']['PROPERTY']['VALUE'],
"EXTERNAL_ID" => $arResult['PRODUCTS']['INTEREST']['CATEGORIES']));
$arResult['PRODUCTS']['INTEREST']['PROPERTY']['NAME'] = $property_name->GetNext()['VALUE'];
unset($property_name);
}
- parametrs.php
В данном файле в самом начале необходимо добавить строчки
use intec\core\bitrix\Component;
use intec\core\collections\Arrays;
use intec\core\helpers\Type;
use intec\core\helpers\StringHelper;
use intec\core\helpers\ArrayHelper;
use Bitrix\Main\Localization\Loc;
Затем после подключения модуля iblock нужно вставить код
$arParametersCommon = [
'FORM_ID',
'FORM_TEMPLATE',
'FORM_PROPERTY_PRODUCT',
'PROPERTY_MARKS_RECOMMEND',
'PROPERTY_MARKS_NEW',
'PROPERTY_MARKS_HIT',
'PROPERTY_ORDER_USE',
'CONSENT_URL',
'LAZY_LOAD',
'VOTE_MODE',
'DELAY_USE',
'QUANTITY_MODE',
'QUANTITY_BOUNDS_FEW',
'QUANTITY_BOUNDS_MANY',
'SERVICES_IBLOCK_TYPE',
'SERVICES_IBLOCK_ID',
'REVIEWS_IBLOCK_TYPE',
'REVIEWS_IBLOCK_ID',
'REVIEWS_PROPERTY_ELEMENT_ID',
'REVIEWS_USE_CAPTCHA',
'PROPERTY_ARTICLE',
'PROPERTY_BRAND',
'PROPERTY_PICTURES',
'PROPERTY_SERVICES',
'PROPERTY_DOCUMENTS',
'PROPERTY_ADDITIONAL',
'PROPERTY_ASSOCIATED',
'PROPERTY_RECOMMENDED',
'PROPERTY_VIDEO',
'OFFERS_PROPERTY_ARTICLE',
'OFFERS_PROPERTY_PICTURES',
'CONVERT_CURRENCY',
'CURRENCY_ID',
'PRICE_CODE'
];
После этого в конце файла добавьте следующий кусок кода
$sComponent = 'bitrix:catalog.section.list';
$sTemplate = 'catalog.';
$arTemplates = Arrays::from(CComponentUtil::GetTemplatesList(
$sComponent,
$siteTemplate
))->asArray(function ($iIndex, $arTemplate) use (&$sTemplate) {
if (!StringHelper::startsWith($arTemplate['NAME'], $sTemplate))
return ['skip' => true];
$sName = StringHelper::cut(
$arTemplate['NAME'],
StringHelper::length($sTemplate)
);
return [
'key' => $sName,
'value' => $sName
];
});
foreach (['ROOT', 'CHILDREN'] as $sLevel) {
$sPrefix = 'SECTIONS_'.$sLevel.'_';
$sTemplate = ArrayHelper::getValue($arCurrentValues, $sPrefix.'TEMPLATE');
$sTemplate = ArrayHelper::fromRange($arTemplates, $sTemplate, false, false);
if (!empty($sTemplate))
$sTemplate = 'catalog.'.$sTemplate;
if (!empty($sTemplate)) {
$arTemplateParameters = ArrayHelper::merge($arTemplateParameters, Component::getParameters(
$sComponent,
$sTemplate,
$siteTemplate,
$arCurrentValues,
$sPrefix,
function ($sKey, &$arParameter) use (&$sLevel, &$arParametersCommon) {
if (ArrayHelper::isIn($sKey, $arParametersCommon))
return false;
$arParameter['PARENT'] = 'SECTIONS_SETTINGS';
$arParameter['NAME'] = Loc::getMessage('C_CATALOG_CATALOG_1_SECTIONS_'.$sLevel).'. '.$arParameter['NAME'];
return true;
},
Component::PARAMETERS_MODE_TEMPLATE
));
}
if ($sLevel === 'CHILDREN') {
$sExtendingPrefix = $sPrefix.'EXTENDING_';
$sExtendingComponent = 'bitrix:catalog.section';
$sExtendingTemplate = 'products.small.';
$arExtendingTemplates = Arrays::from(CComponentUtil::GetTemplatesList(
$sExtendingComponent,
$siteTemplate
))->asArray(function ($iIndex, $arTemplate) use (&$sExtendingTemplate) {
if (!StringHelper::startsWith($arTemplate['NAME'], $sExtendingTemplate))
return ['skip' => true];
$sName = StringHelper::cut(
$arTemplate['NAME'],
StringHelper::length($sExtendingTemplate)
);
return [
'key' => $sName,
'value' => $sName
];
});
$sExtendingTemplate = ArrayHelper::getValue($arCurrentValues, $sExtendingPrefix.'TEMPLATE');
$sExtendingTemplate = ArrayHelper::fromRange($arExtendingTemplates, $sExtendingTemplate, false, false);
if (!empty($sExtendingTemplate))
$sExtendingTemplate = 'products.small.'.$sExtendingTemplate;
$arTemplateParameters[$sExtendingPrefix.'USE'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sExtendingPrefix.'USE'),
'TYPE' => 'CHECKBOX'
];
$arTemplateParameters[$sExtendingPrefix.'COUNT'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sExtendingPrefix.'COUNT'),
'TYPE' => 'STRING',
'DEFAULT' => 30
];
$arFields = [];
if (!empty($arCurrentValues['IBLOCK_ID'])) {
$rsFields = CUserTypeEntity::GetList(['SORT' => 'ASC'], array(
'ENTITY_ID' => 'IBLOCK_'.$arCurrentValues['IBLOCK_ID'].'_SECTION',
'USER_TYPE_ID' => 'iblock_section',
'MULTIPLE' => 'Y'
));
while ($arField = $rsFields->Fetch())
$arFields[$arField['FIELD_NAME']] = $arField['FIELD_NAME'];
unset($rsFields);
}
$arTemplateParameters[$sExtendingPrefix.'PROPERTY'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sExtendingPrefix.'PROPERTY'),
'TYPE' => 'LIST',
'VALUES' => $arFields,
'ADDITIONAL_VALUES' => 'Y'
];
unset($arFields);
$arTemplateParameters[$sExtendingPrefix.'TITLE'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sExtendingPrefix.'TITLE'),
'TYPE' => 'STRING',
'DEFAULT' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sExtendingPrefix.'TITLE_DEFAULT')
];
$arTemplateParameters[$sExtendingPrefix.'TEMPLATE'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sExtendingPrefix.'TEMPLATE'),
'TYPE' => 'LIST',
'VALUES' => $arExtendingTemplates,
'ADDITIONAL_VALUES' => 'Y',
'REFRESH' => 'Y'
];
if (!empty($sExtendingTemplate)) {
$arTemplateParameters = ArrayHelper::merge($arTemplateParameters, Component::getParameters(
$sExtendingComponent,
$sExtendingTemplate,
$siteTemplate,
$arCurrentValues,
$sExtendingPrefix,
function ($sKey, &$arParameter) use (&$sLevel, &$arParametersCommon) {
if (ArrayHelper::isIn($sKey, $arParametersCommon))
return false;
$arParameter['PARENT'] = 'SECTIONS_SETTINGS';
$arParameter['NAME'] = Loc::getMessage('C_CATALOG_CATALOG_1_SECTIONS_'.$sLevel).'. '.Loc::getMessage('C_CATALOG_CATALOG_1_SECTIONS_'.$sLevel.'_EXTENDING').'. '.$arParameter['NAME'];
return true;
},
Component::PARAMETERS_MODE_TEMPLATE
));
}
$sArticlesExtendingPrefix = 'SECTIONS_ARTICLES_EXTENDING_';
$sArticlesExtendingComponent = 'bitrix:news.list';
$sArticlesExtendingTemplate = 'news.';
$arArticlesExtendingTemplates = Arrays::from(CComponentUtil::GetTemplatesList(
$sArticlesExtendingComponent,
$siteTemplate
))->asArray(function ($iIndex, $arTemplate) use (&$sArticlesExtendingTemplate) {
if (!StringHelper::startsWith($arTemplate['NAME'], $sArticlesExtendingTemplate))
return ['skip' => true];
$sName = StringHelper::cut(
$arTemplate['NAME'],
StringHelper::length($sArticlesExtendingTemplate)
);
return [
'key' => $sName,
'value' => $sName
];
});
$sArticlesExtendingTemplate = ArrayHelper::getValue($arCurrentValues, $sArticlesExtendingPrefix.'TEMPLATE');
$sArticlesExtendingTemplate = ArrayHelper::fromRange($arArticlesExtendingTemplates, $sArticlesExtendingTemplate, false, false);
if (!empty($sArticlesExtendingTemplate))
$sArticlesExtendingTemplate = 'news.'.$sArticlesExtendingTemplate;
$arTemplateParameters[$sArticlesExtendingPrefix.'TITLE'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sArticlesExtendingPrefix.'TITLE'),
'TYPE' => 'STRING',
'DEFAULT' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sArticlesExtendingPrefix.'TITLE_DEFAULT')
];
$arTemplateParameters[$sArticlesExtendingPrefix.'QUANTITY'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sArticlesExtendingPrefix.'QUANTITY'),
'TYPE' => 'STRING',
'DEFAULT' => 5
];
$arTemplateParameters[$sArticlesExtendingPrefix.'TEMPLATE'] = [
'PARENT' => 'SECTIONS_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_'.$sArticlesExtendingPrefix.'TEMPLATE'),
'TYPE' => 'LIST',
'VALUES' => $arArticlesExtendingTemplates,
'ADDITIONAL_VALUES' => 'Y',
'REFRESH' => 'Y'
];
if (!empty($sExtendingTemplate)) {
$arTemplateParameters = ArrayHelper::merge($arTemplateParameters, Component::getParameters(
$sArticlesExtendingComponent,
$sArticlesExtendingTemplate,
$siteTemplate,
$arCurrentValues,
$sArticlesExtendingPrefix,
function ($sKey, &$arParameter) use (&$arParametersCommon) {
if (ArrayHelper::isIn($sKey, $arParametersCommon))
return false;
$arParameter['PARENT'] = 'SECTIONS_SETTINGS';
$arParameter['NAME'] = Loc::getMessage('C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING').'. '.$arParameter['NAME'];
return true;
},
Component::PARAMETERS_MODE_TEMPLATE
));
}
}
}
if (!empty($arCurrentValues['IBLOCK_ID'])) {
$arTemplateParameters['INTEREST_PRODUCTS_SHOW'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_SHOW'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'N',
'REFRESH' => 'Y'
];
if ($arCurrentValues['INTEREST_PRODUCTS_SHOW'] === 'Y') {
$arSectionsList = CIBlockSection::GetTreeList([
'IBLOCK_ID' => $arIBlock['ID'],
"ACTIVE" => "Y"
], [
"ID",
"NAME",
"CODE"
]);
$arSections [0] = Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_ALL');
$arSections [1] = Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_DEFAULT');
while($elements = $arSectionsList->GetNextElement()) {
$element = $elements->GetFields();
$arSections [$element['ID']] = '['.$element['CODE'].'] '.$element['NAME'];
}
$arTemplateParameters['INTEREST_PRODUCTS_TITLE'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCT_TITLE'),
'TYPE' => 'STRING',
'DEFAULT' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCT_NAME_DEFAULT')
];
$arTemplateParameters['INTEREST_PRODUCTS_COUNT'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_COUNT'),
'TYPE' => 'STRING',
'DEFAULT' => 25
];
$arTemplateParameters['INTEREST_PRODUCTS_POSITION'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_POSITION'),
'TYPE' => 'LIST',
'VALUES' => [
'content' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_POSITION_CONTENT'),
'footer' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_POSITION_BOTTOM')
]
];
$arTemplateParameters['INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE'),
'TYPE' => 'CHECKBOX',
'DEFAULT' => 'N',
'REFRESH' => 'Y'
];
if ($arCurrentValues['INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE'] === 'Y') {
$arTemplateParameters['INTEREST_PRODUCTS_CATEGORIES_PROPERTY'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_PROPERTY'),
'TYPE' => 'LIST',
'VALUES' => $arProperties->asArray(function ($iIndex, $arProperty) {
if (empty($arProperty['CODE']))
return ['skip' => true];
if ($arProperty['PROPERTY_TYPE'] !== 'L' || $arProperty['LIST_TYPE'] !== 'L' || $arProperty['MULTIPLE'] === 'Y')
return ['skip' => true];
return [
'key' => $arProperty['CODE'],
'value' => '['.$arProperty['CODE'].'] '.$arProperty['NAME']
];
}),
'DEFAULT' => 'CATEGORY',
'REFRESH' => 'Y',
'ADDITIONAL_VALUES' => 'Y'
];
if (!empty($arCurrentValues['INTEREST_PRODUCTS_CATEGORIES_PROPERTY'])) {
$arProperty = CIBlockProperty::GetList([], [
'IBLOCK_ID' => $arIBlock['ID'],
'CODE' => $arCurrentValues['INTEREST_PRODUCTS_CATEGORIES_PROPERTY']
])->GetNext();
if (!empty($arProperty)) {
$rsCategories = CIBlockPropertyEnum::GetList(['SORT' => 'ASC'], [
'PROPERTY_ID' => $arProperty['ID']
]);
while ($arCategory = $rsCategories->GetNext())
if (!empty($arCategory['XML_ID']))
$arCategories[$arCategory['XML_ID']] = '['.$arCategory['XML_ID'].'] '.$arCategory['VALUE'];
}
}
$arTemplateParameters['INTEREST_PRODUCTS_CATEGORIES'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES'),
'TYPE' => 'LIST',
'VALUES' => $arCategories,
'DEFAULT' => null,
'ADDITIONAL_VALUES' => 'Y'
];
} else {
$arTemplateParameters['INTEREST_PRODUCTS_CATEGORIES'] = [
'PARENT' => 'LIST_SETTINGS',
'NAME' => Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES'),
'TYPE' => 'LIST',
'VALUES' => $arSections,
'DEFAULT' => 0
];
}
$sComponent = 'bitrix:catalog.section';
$sTemplate = 'products.small.6';
$sPrefix = 'INTEREST_PRODUCTS_';
$arTemplates = Arrays::from(CComponentUtil::GetTemplatesList(
$sComponent,
$siteTemplate
))->asArray(function ($key, $arTemplate) {
return [
'key' => $key,
'value' => $arTemplate['NAME']
];
});
if (ArrayHelper::isIn($sTemplate, $arTemplates)) {
$arRecommendedCommonParameters = [
'SETTINGS_USE',
'LAZYLOAD_USE'
];
$arTemplateParameters = ArrayHelper::merge($arTemplateParameters, Component::getParameters(
$sComponent,
$sTemplate,
$siteTemplate,
$arCurrentValues,
$sPrefix,
function ($key, &$arParameter) use (&$arRecommendedCommonParameters) {
if (ArrayHelper::isIn($key, $arRecommendedCommonParameters))
return false;
$arParameter['NAME'] = Loc::getMessage('C_CATALOG_CATALOG_1_INTEREST_PRODUCT').' '.$arParameter['NAME'];
$arParameter['PARENT'] = 'LIST_SETTINGS';
return true;
},
Component::PARAMETERS_MODE_TEMPLATE
));
unset($arRecommendedCommonParameters);
}
unset($sTemplate, $sComponent, $sPrefix, $arTemplates);
}
}
Также необходимо добавить код в lang файл
Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix->templates->Название_вашего_шаблона->components->bitrix->catalog->Название_вашего_шаблона->lang->ru->.parameters.php
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCT'] = 'Вас могут заинтересовать. ';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_SHOW'] = 'Отображать блок "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE'] = 'Использовать свойство "Категория" для вывода в блок "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_PROPERTY'] = 'Свойство для вывода в блок "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCT_TITLE'] = 'Заголовок блока "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCT_NAME_DEFAULT'] = 'Вас могут заинтересовать';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_POSITION'] = 'Позиция блока "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_POSITION_CONTENT'] = 'В блоке контента';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_POSITION_BOTTOM'] = 'Внизу страницы ';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES'] = 'Категория "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_ALL'] = 'Все';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_DEFAULT'] = 'По умолчанию';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_COUNT'] = 'Количество элементов в блоке "Вас могут заинтересовать" (минимум 1)';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_TITLE'] = 'Заголовок статей расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_TITLE_DEFAULT'] = 'Полезные статьи';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT'] = 'Корневые разделы';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_SECTION_DESCRIPTION_SHOW'] = 'Отображать описание в корне';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_SECTION_DESCRIPTION_POSITION'] = 'Позиция описания в корне';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_SECTION_DESCRIPTION_POSITION_TOP'] = 'Сверху';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_SECTION_DESCRIPTION_POSITION_BOTTOM'] = 'Снизу';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_CANONICAL_URL_USE'] = 'Использовать канонический адрес в корне';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_CANONICAL_URL_TEMPLATE'] = 'Шаблон канонического адреса в корне';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_TEMPLATE'] = 'Шаблон корневых разделов';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ROOT_MENU_SHOW'] = 'Отображать меню в корневых разделах';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN'] = 'Вложенные разделы';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_SECTION_DESCRIPTION_SHOW'] = 'Отображать описание в разделах';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_SECTION_DESCRIPTION_POSITION'] = 'Позиция описания в разделах';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_SECTION_DESCRIPTION_POSITION_TOP'] = 'Сверху';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_SECTION_DESCRIPTION_POSITION_BOTTOM'] = 'Снизу';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_CANONICAL_URL_USE'] = 'Использовать канонический адрес вложенных разделов';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_CANONICAL_URL_TEMPLATE'] = 'Шаблон канонического адреса вложенных разделов';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_TEMPLATE'] = 'Шаблон вложенных разделов';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_MENU_SHOW'] = 'Отображать меню во вложенных разделах';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING'] = 'Расширение товаров';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_USE'] = 'Использовать расширение товаров за счет родительских разделов';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_COUNT'] = 'Максимальное количество товаров расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_PROPERTY'] = 'Свойство с разделами, откуда берутся товары расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_TITLE'] = 'Заголовок товаров расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_TITLE_DEFAULT'] = 'Смотрите также';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_TEMPLATE'] = 'Шаблон товаров расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_ARTICLES_EXTENDING'] = 'Выводить статьи для расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_QUANTITY'] = 'Количество выводимых статей для расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING'] = 'Выводить статьи для расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_COUNT'] = 'Максимальное количество статей расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_TITLE'] = 'Заголовок статей расширения';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_TITLE_DEFAULT'] = 'Полезные статьи';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_ARTICLES_EXTENDING_TEMPLATE'] = 'Шаблон статей расширения';
$MESS['C_CATALOG_CATALOG_1_TAGS_COUNT'] = 'Теги. Подсчитывать количество элементов для каждого тэга';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_COUNT'] = 'Количество элементов в блоке "Вас могут заинтересовать" (минимум 1)';
$MESS['C_CATALOG_CATALOG_1_TAGS_PROPERTY'] = 'Теги. Свойство "Тэги"';
$MESS['C_CATALOG_CATALOG_1_SECTIONS_CHILDREN_EXTENDING_PROPERTY'] = 'Свойство с разделами, откуда берутся товары расширения';
$MESS['C_CATALOG_CATALOG_1_PROPERTY_ADDITIONAL_ARTICLES'] = 'Свойство "Статьи раздела"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_PROPERTY_USE'] = 'Использовать свойство "Категория" для вывода в блок "Вас могут заинтересовать"';
$MESS['C_CATALOG_CATALOG_1_INTEREST_PRODUCTS_CATEGORIES_PROPERTY'] = 'Свойство для вывода в блок "Вас могут заинтересовать"';