Last active
December 29, 2019 10:50
-
-
Save Elvinz/a360016e5bdb19700b0299a83c058278 to your computer and use it in GitHub Desktop.
Битрикс шпаргалка
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Получить ID текущего раздела (например, в шаблоне компонента каталога) | |
print_r($arResult["VARIABLES"]["SECTION_ID"]); | |
2. Проверка авторизован ли как Администратор | |
<?php | |
global $USER; | |
if ($USER->IsAdmin()) echo "<pre>"; print_r($arResult["VARIABLES"]["SECTION_ID"]); echo "</pre>"; | |
3. Выводить список разделов каталога, отобранных по пользовательским полям. Не забыть array("UF_*"). Без компонента, например, catalog.section.list | |
<?php | |
//global $USER; | |
//if ($USER->IsAdmin()) print_r($arResult["VARIABLES"]["SECTION_ID"]); | |
//$SECTION_IDs = array(24,23); | |
$rsSections = CIBlockSection::GetList( | |
array("SORT" => "ASC"), | |
array("IBLOCK_ID" => 4, "ID" => $SECTION_IDs, "UF_QUICKLINKS" => 1, "UF_CONNECTTOSEC" => $arResult["VARIABLES"]["SECTION_ID"]), | |
false, | |
array("UF_*") | |
);?> | |
<ul class="quicklinks"> | |
<? while ($arSections = $rsSections->fetch()){?> | |
<li><a href="/<?= $arSections['CODE'] ?>"> | |
<?= $arSections['NAME'] ?> | |
</a></li> | |
<?}?> | |
</ul> | |
4. Фильтр у catalog.section.list (т.к. его нет по умолчанию). Выводим список разделов с помощью компонента catalog.section.list, в отличие от приведённого выше способа с CIBlockSection::GetList. | |
Пока пользуйтесь result_modifier.php, пример: выводить разделы на главной (перед этим создаете пользовательское свойство раздела и выбираете его в настройках компонента catalog.section.list): | |
<? | |
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); | |
foreach ($arResult['SECTIONS'] as $key => $arSection) | |
{ | |
if ($arSection["UF_QUICKLINKS"]) | |
unset($arResult['SECTIONS'][$key]); | |
} | |
5. Вывести дополнительное поле | |
$ar_result=CIBlockSection::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>$arParams['IBLOCK_ID'], "ID"=>$arResult['SECTION']['ID']),false, Array("UF_H1")); | |
if($res=$ar_result->GetNext()){echo $res["UF_H1"];} | |
6. Получение SEO тегов элемента инфоблока | |
Для получения тегов элемента инфоблока: | |
//Следующий код выведет нам набор СЕО тегов элемента с указанным ID | |
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult['IBLOCK_ID'], $arResult['ID']); | |
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues(); | |
var_dump($arResult['IPROPERTY_VALUES']); | |
Для получения тегов раздела инфоблока: | |
$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($arResult['IBLOCK_ID'], $arResult['IBLOCK_SECTION_ID']); | |
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues(); | |
var_dump($arResult['IPROPERTY_VALUES']); | |
Для получения тегов инфоблока: | |
$ipropValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($arResult['IBLOCK_ID']); | |
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues(); | |
var_dump($arResult['IPROPERTY_VALUES']); | |
Обратите внимание, что во всех случаях задается ID инфоблока ($arResult['IBLOCK_ID']), а для выборки тегов раздела инфоблока или элемента инфоблока дополнительно указать ID раздела ($arResult['IBLOCK_SECTION_ID']) или ID элемента ( $arResult['ID']), соответственно. Отмечу, что код написан с использованием идеологии разработки D7, что привнесло,в том числе, единообразие в аналогичные методы для разных сущностей. (http://www.codeblog.pro/bitrix1c/poluchenie-seo-tegov-elementa-infobloka/) | |
7. Скрыть раздел от показа в меню (компонент catalog.section.list) | |
<ul class="<? echo $arCurView['LIST']; ?>"> | |
<? | |
switch ($arParams['VIEW_MODE']) | |
{ | |
case 'LINE': | |
foreach ($arResult['SECTIONS'] as &$arSection) | |
{ | |
if ($arSection['ID'] != 434) { /* скрываем раздел Готовая продукция из левого меню*/ | |
... | |
8. В компоненте каталога 'HIDE_ICONS' => 'N', чтобы показывать внутренние компоненты компонента на фронтенде. | |
<? | |
$APPLICATION->IncludeComponent( | |
"bitrix:catalog.section.list", | |
"", | |
array( | |
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], | |
"IBLOCK_ID" => $arParams["IBLOCK_ID"], | |
"CACHE_TYPE" => $arParams["CACHE_TYPE"], | |
"CACHE_TIME" => $arParams["CACHE_TIME"], | |
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"], | |
"COUNT_ELEMENTS" => $arParams["SECTION_COUNT_ELEMENTS"], | |
"TOP_DEPTH" => $arParams["SECTION_TOP_DEPTH"], | |
"SECTION_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["section"], | |
"VIEW_MODE" => $arParams["SECTIONS_VIEW_MODE"], | |
"SHOW_PARENT_NAME" => $arParams["SECTIONS_SHOW_PARENT_NAME"], | |
"HIDE_SECTION_NAME" => (isset($arParams["SECTIONS_HIDE_SECTION_NAME"]) ? $arParams["SECTIONS_HIDE_SECTION_NAME"] : "N"), | |
"ADD_SECTIONS_CHAIN" => (isset($arParams["ADD_SECTIONS_CHAIN"]) ? $arParams["ADD_SECTIONS_CHAIN"] : '') | |
), | |
$component, | |
array("HIDE_ICONS" => "N") | |
); | |
?> | |
9. Вывод разделов каталога в 2 колонки требует изменения в компоненте bitrix:catalog.section.list | |
В файле result_modifier.php: | |
Код | |
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); | |
// Модифицируем пункты для разбивки на колонки | |
$arCopy = $arResult["SECTIONS"]; | |
foreach ($arResult["SECTIONS"] as $arSection) | |
{ | |
if ($arSection["IBLOCK_SECTION_ID"] == $arParams["SECTION_ID"]) | |
{ | |
$SUBITEMS = array(); | |
foreach ($arCopy as $subItem) | |
{ | |
if ($subItem["IBLOCK_SECTION_ID"] == $arSection["ID"]) | |
$SUBITEMS[] = $subItem; | |
} | |
$arSection["ITEMS"] = $SUBITEMS; | |
$SECT[] = $arSection; | |
} | |
} | |
$arResult["SECT"] = $SECT; | |
?> | |
Вывод названия прикрепленных свойств. | |
<?foreach($arResult["PROPERTIES"]["FORMA_TEST"]["VALUE"] as $key2=>$analog):?> | |
<?$res = CIBlockElement::GetByID($analog);?> | |
<?if($ar_res = $res->GetNext()){?> | |
<table class='cart-char-table mobile-break'> | |
<tbody> | |
<tr> | |
<td class="left"> | |
<?=$ar_res["PREVIEW_TEXT"];?> | |
</td> | |
<td class="dotted"> | |
<div class="dotted"></div> | |
</td> | |
<td class="right bold"> | |
<?=$ar_res["NAME"];?> | |
</td> | |
<?}?> | |
</tbody> | |
</table> | |
<?endforeach;?> | |
<? }?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment