Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну кучку. Ведь у каждого бывают моменты тупости, когда забывается последовательность синтаксиса.
Собрал самые основные и часто используемые, в процессе создания сайтов на Битрикс буду дополнять список. Ведь "копировать-вставить" намного проще чем "вспомнить-поискать-порыться в документации-вставить".
В основном шаблоне:
<?$APPLICATION->ShowTitle()?> - собственно вывод тайтла в основном шаблоне сайта
<?$APPLICATION->ShowHead()?> - подключение для вывода в шаблоне сайта основных полей тега : мета-теги Content-Type, robots, keywords, description; стили CSS; скрипты
<?$APPLICATION->ShowPanel();?> - выводит панель управления администратора
<?=SITE_TEMPLATE_PATH?> - подставляет путь к шаблону
<?$APPLICATION->ShowTitle(false);?> - заголовок (в h1 например использовать)
ShowHead разбить на составляющие:
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET;?>" /> - Установка кодировки сайта
<? $APPLICATION->ShowMeta("keywords") ?> - Вывод мета тега keywords
<? $APPLICATION->ShowMeta("description") ?> - Вывод мета тега description
<? $APPLICATION->ShowCSS(); ?> - Подключение основных файлов стилей template_styles.css и styles.css
<? $APPLICATION->ShowHeadStrings() ?> - Отображает специальные стили, JavaScript
<? $APPLICATION->ShowHeadScripts() ?> - Вывода служебных скриптов
В шаблонах компонентов:
<img src="<?=$arSection["PICTURE"]["SRC"]?>" title="<?=$arSection["NAME"]?>" border="0"/> - картинка раздела инфоблока.
<?=$arSection["DESCRIPTION"]?> - описание раздела инфоблока
<?echo $arItem["NAME"]?> - название
<?echo $arItem["DETAIL_PAGE_URL"]?> - ссылка на детальную новость (статью)
<?echo $arItem["PREVIEW_TEXT"];?> - текст анонса
<?echo $arResult["DETAIL_TEXT"];?> - детальный текст
<?=$arItem["PREVIEW_PICTURE"]["SRC"]?> - изображение анонса
<?=$arItem["DETAIL_PICTURE"]["SRC"]?> - изображение детальное
<?=$arResult['DISPLAY_ACTIVE_FROM']?> -дата начала активности
<?=$arItem['DATE_CREATE']?> -Дата создания элемента инфолока
Полезные условия
Если картинки нет- то вывести "нет картинки"
<?if (strlen($arItem["DETAIL_PICTURE"]["SRC"])>0):?>
<img src="<?=$arItem["DETAIL_PICTURE"]["SRC"]?>"/>
<?else:?>
нет картинки
<?endif?>
Включаемая область в режиме php.
<?
$APPLICATION->IncludeFile(
SITE_DIR."include/flash.php",
Array(),
Array("MODE"=>"php")
);
?>
Количество товара на складе в списке товаров:
<?
$ar_res = CCatalogProduct::GetByID($arElement['ID']);
echo "<br>На складе: ";
print_r($ar_res['QUANTITY']);
echo " шт.";
?>
В подробной карточке товара, с подменой цифрового значения на выражение:
<?
$quantity= $arElement[CATALOG_QUANTITY];
if (!$quantity){?>нет<?}
if ($quantity!=0 && $quantity<=10){?>мало<?}
if ($quantity!=0 && $quantity>10 && $quantity<=100){?>достаточно<?}
if ($quantity>100){?>много
<?}?><?=$arResult[CATALOG_QUANTITY];?>
Вывести название раздела внутри элемента. Например в детальной новости, указать к какому из разделов она относится:
<?echo $arResult["SECTION"]["PATH"][0]["NAME"]?>
Вывести меню нужного типа в шаблоне битрикс
<?
$APPLICATION->IncludeComponent("bitrix:menu", "top_menu", array(
"ROOT_MENU_TYPE" => "top", //В данном случаее меню типа top
"MENU_CACHE_TYPE" => "A",
"MENU_CACHE_TIME" => "3600",
"MENU_CACHE_USE_GROUPS" => "Y",
"MENU_CACHE_GET_VARS" => array(
),
"MAX_LEVEL" => "1",
"CHILD_MENU_TYPE" => "left",
"USE_EXT" => "N",
"DELAY" => "N",
"ALLOW_MULTI_SELECT" => "N"
),
false
);
?>
Подключение веб мессенджера в шаблоне сайта
<?$APPLICATION->IncludeComponent("bitrix:im.messenger", "", Array(), null, array("HIDE_ICONS" => "N"));?>
Вывести текст описания свойства инфоблока. Например, в форме добавления/редактирования элемента инфоблока для пользователей:
<?=$arResult["PROPERTY_LIST_FULL"][$propertyID]["HINT"]?>
Вывести текущую дату из установленной на сервере
<? echo date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL")), time()); ?>
Цитата |
---|
Екатерина пишет: Здравствуйте, Михаил! Во-первых, огромное Вам спасибо за Ваш труд - уроки просто замечательные, очень мне помогли! А во-вторых, у меня к Вам вот такой вопрос: мне поручили заниматься сайтом, сделанном на битриксе, и нужно исправить на страничке с контактами почтовый адрес. Я посмотрела - он выводится включаемой областью (файлом). Прошла в этот файл, а там стоит функция: <div class="item"><strong>Почтовый адрес:</strong> <?=$arContacts['CONTACTS_POST_ADDRESS']['VALUE']?></div> И что мне делать, где исправить эту CONTACTS_POST_ADDRESS ума не приложу. Где в битриксе хранятся расшифровки этих функций? Сама я работаю в Joomla, там с этим делом совсем по-другому. В тупике. Не подскажете, Михаил, где копать? |
посмотрите в
Код |
---|
/bitrix/templates/ваш_шаблон/lang/ru/ |

Цитата |
---|
Guest пишет: Я наверное задам тупой вопрос, но все что прочитал не сработало - как вывести название раздела в шаблоне превью новости? (желательно и ссылку на раздел получить). Такая банальная штука а столько проблем мне доставила |
http://camouf.ru/blog-note/1393/?sphrase_id=7558
Цитата | ||
---|---|---|
Михаил Базаров пишет:
http://camouf.ru/blog-note/1393/?sphrase_id=7558 |
Цитата | ||||
---|---|---|---|---|
Guest пишет:
|
Вот такую ошибку выдает ,если ID писать напрямую. Если писать любые другие цифры (которые не совпадают с id реальных разделов) - ошибок нет и ничего не происходит...
CIBlockResult...
Спасибо!)

Цитата |
---|
Ксения написал: Добрый день! Я наверное задам глупый вопрос.))) Только начала изучать ваши уроки и столкнулась с такой проблемой У меня не меняются стили главного меню, всю голову сломала, пересмотрела урок раз 5 точно, несколько раз всё заново переделала пошагово. При этом, сначала всё поменялось, но при внесении любых изменений в админке стили возвращались, а потом и меняться перестали вовсе. Не подскажете, может быть нужно что-то ещё сделать? |
Цитата | ||
---|---|---|
Михаил Базаров пишет:
|


Цитата |
---|
Николай написал: Здравствуйте, у меня вопрос, мне нужно вывести простой текст на главную страницу сайта на битрикс, как я это могу сделать? Просто у вас видеоуроки на ютуб достаточно длинные. и не совсем понятно, какое видео мне просмотреть для решения именно этой задачи. |

Цитата |
---|
Павел Лемак написал: Добрый день! Ковыряем купленный шаблон мобильной версии, и не можем найти описание раздела. В десктопной-то оно есть, на любой странице каталога (категории товаров) идёт описание. А вот в мобильной его нету. Пробовали запихивать в шаблон <?=$arResult['DESCRIPTION']?> - кэш чистили, не работает, в чём может быть проблема?.. |

Если отстал по времени, перенисите с поломанного в него, не достающие части, снова заархивируейте и разверните на боевом
В общем, тяжело подсказать
Цитата |
---|
Михаил Базаров пишет: Так не подскажу, нужно смотреть сайт изнутри. Но если есть бекап, просто разверните его на своем компьютере и посмотрите- если он актуальный- можно попробовать развернуть на живую Если отстал по времени, перенисите с поломанного в него, не достающие части, снова заархивируейте и разверните на боевом В общем, тяжело подсказать |
но никак не получается.
<?if($APPLICATION->GetCurDir()==SITE_DIR || $APPLICATION->GetCurDir()==SITE_DIR.'catalog/' ):?>на главной и в каталоге<?else:?>на остальных<?endif;?>>
данная функция на главной и на корневой странице раздела каталог делает col-md-12, а вот внутренние страницы каталога всё равно col-md-8+col-md-4
можно ли победить?
//инклюд
<?$APPLICATION->IncludeFile(SITE_DIR."include/file.php", Array(), Array("MODE" => "html", "NAME" => "заголовок" ;) );?>
//инклюд2
<?$APPLICATION->IncludeFile(SITE_DIR."include/file.php" ;) ;?>
подключение скриптов из папки шаблона
<? $this->addExternalJS($this->__folder."/form_script.js" ;) ;?>
<? $this->addExternalCss($this->__folder."/form_script.css" ;) ;?>

Цитата |
---|
Сергей Бушкевич написал: хочу сделать разную разметку на некоторых страницах сайта. к примру на главной и в каталоге хочу .col-md-12, а на остальных .col-md-8+col-md-4. но никак не получается. <?if($APPLICATION->GetCurDir()==SITE_DIR || $APPLICATION->GetCurDir()==SITE_DIR.'catalog/' ):?>на главной и в каталоге<?else:?>на остальных<?endif;?>> данная функция на главной и на корневой странице раздела каталог делает col-md-12, а вот внутренние страницы каталога всё равно col-md-8+col-md-4 можно ли победить? |
Код |
---|
<?if ( ($APPLICATION->GetCurDir()=='/') || (CSite::InDir('/catalog/')) ){?> Главная и каталог <?} else {?> Все остальные <?}?> |

Цитата |
---|
Сергей Стефанович написал: подключение скриптов из папки шаблона <? $this->addExternalJS($this->__folder."/form_script.js" ;?> <? $this->addExternalCss($this->__folder."/form_script.css" ;?> |
Вот так аккуратнее
Код |
---|
<? $templateFolder = &$this->GetFolder(); ?> |
Цитата | ||
---|---|---|
Михаил Базаров пишет:
|
Или исключить определенные дополнительные поля, при выводе через массив?
Подскажите, а как в данное выражение добавить условие, если = 0, то под заказ
Количество товара на складе в списке товаров:
<? $ar_res = CCatalogProduct::GetByID($arElement['ID']); echo "<br>На складе: ";
print_r($ar_res['QUANTITY']);
echo " шт.";
?>

Код |
---|
if((int)$ar_res['QUANTITY'] > 0) { echo 'на складе ' . $ar_res['QUANTITY'] . ' шт.'; } else { echo 'Под заказ'; } |
Необходимо к переменной "DETAIL_TEXT" добавить данные из свойства карточки товара. любое свойство, которое есть в свойствах торгового каталога.
Заранее спасибо.
Хочу сделать описание в карточке товара что бы генерировалось для каждого товара и текст в описании брался из свойств инфоблока.
К примеру:
Купить #название_товара#, самый лучший товар #код_свойства# формы, имеер размеры #код_свойства#, и обладает преимуществами #код_свойства#.
Спасибо.

Цитата |
---|
Web_D написал: Приветствую. Подскажи пожалуйста. Хочу сделать описание в карточке товара что бы генерировалось для каждого товара и текст в описании брался из свойств инфоблока. К примеру: Купить #название_товара#, самый лучший товар #код_свойства# формы, имеер размеры #код_свойства#, и обладает преимуществами #код_свойства#. Спасибо. |
Можно сгененировать эту строку в настройках инфоблока, как описание карточки товара (на вкладке SEO)
А в самом шаблоне вывести:
Код |
---|
<?= $arResult['META_DESCRIPTION']?> |
Для полного фен шуя, можно проверять наличие нормального описания, если его нет- выводить сгенерированное.
Код |
---|
<?if (!empty($arResult['DETAIL_TEXT'])){ echo $arResult['DETAIL_TEXT']; }else{ echo $arResult['META_DESCRIPTION']; } ?> |