Основные функции вывода в шаблонах Битрикс

Просмотров: 126827 | Комментариев: 65

Собрал самые основные и часто используемые, в процессе создания сайтов на Битрикс буду дополнять список. Ведь "копировать-вставить" намного проще чем "вспомнить-поискать-порыться в документации-вставить".

В основном шаблоне:

<?$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()); ?>


А как сайт-нэйм прописать в шаблон?
доменное имя
Михаил
Цитата
Алекс пишет:
А как сайт-нэйм прописать в шаблон?
доменное имя
SITE_SERVER_NAME -думаю можно использовать. Вызвать его через API
Михаил
Объясните про Отображаемые счетчики, так как инфы про это найти невозможно( В настройке модуля - "поисковая оптимизация" я вставляю коды счетчиков. Но в исходном коде страниц их нет, код я просматриваю выйдя из режима администратора. Как правильно использовать модуль - "поисковая оптимизация"
Михаил
Цитата
Гость сайта пишет:
Объясните про Отображаемые счетчики, так как инфы про это найти невозможно( В настройке модуля - "поисковая оптимизация" я вставляю коды счетчиков. Но в исходном коде страниц их нет, код я просматриваю выйдя из режима администратора. Как правильно использовать модуль - "поисковая оптимизация"
О поисковой оптимизации вполне понятно рассказал вот тут: http://camouf.ru/blog-note/bx_site_created/13.html и тут http://camouf.ru/blog-note/bx_site_created/14.html , если появляются вопросы, желательно задавать их в комментариях к этим видеозаписям.
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Объясните про Отображаемые счетчики, так как инфы про это найти невозможно( В настройке модуля - "поисковая оптимизация" я вставляю коды счетчиков. Но в исходном коде страниц их нет, код я просматриваю выйдя из режима администратора. Как правильно использовать модуль - "поисковая оптимизация"
О поисковой оптимизации вполне понятно рассказал вот тут: http://camouf.ru/blog-note/bx_site_created/13.html и тут http://camouf.ru/blog-note/bx_site_created/14.html , если появляются вопросы, желательно задавать их в комментариях к этим видеозаписям.
))) Да яж не про то спрашиваю) а про - про Отображаемые счетчики и про - В настройке модуля - "поисковая оптимизация" я вставляю коды счетчиков. Но в исходном коде страниц их нет, код я просматриваю выйдя из режима администратора. Как правильно использовать модуль - "поисковая оптимизация"
Михаил
Цитата
Гость сайта пишет:
Цитата
))) Да яж не про то спрашиваю) а про - про Отображаемые счетчики и про - В настройке модуля - "поисковая оптимизация" я вставляю коды счетчиков. Но в исходном коде страниц их нет, код я просматриваю выйдя из режима администратора. Как правильно использовать модуль - "поисковая оптимизация"
Да, видимо я не понимаю где Вы умудряетесь вставить коды счетчика. Вот тут?:





Этот раздел предназначен для базовой поисковой оптимизации сайта. Регистрируетесь в Яндексе и Гугле. Потом уже через админку сайта добавляете сайт в эти поисковые системы на свои учетки.


Если Вы имете ввиду старую версию битрикса, когда раздел SEO назывался "Поисковая оптимизация", то эти счетчики на сайте не отобразятся. Они только для внутренней статистики (в админке сайта-раздел Веб Аналитика) там и переходы, и хиты и хосты и внешние ссылки- все покажет.
Если прямо сильно хочется вывести счетчик на сайт- то Компоненты- Служебные- Статистика- и вытягиваете в нужно место компонент "Таблица статистики"
Куда  нужно вставить код на  форму SmartResponder (рассылка писем) ?
1. В Index.html?
2. Или её можно вывести с помощью специальной функции?
Михаил
Цитата
Сергей пишет:
Куда нужно вставить код на форму SmartResponder (рассылка писем) ?
1. В Index.html?
2. Или её можно вывести с помощью специальной функции?
Этот вопрос лучше задать поддержке SmartResponder-а. Ни разу этой дребеденью не пользовался.
Если вам дали некий кусок кода то вставляете в нужном месте шаблона и все. Или прямо в страницу сайта, в режиме редактирования кода.
Цитата
Сергей пишет:
Куда нужно вставить код на форму SmartResponder (рассылка писем) ?
1. В Index.html?
2. Или её можно вывести с помощью специальной функции?
Можно вставить в header.php, в то место где хотите его увидеть.
Михаил, посдскажите как вывести Название раздела или подраздела инфоблока в виде текста.
А так же символьный код раздела тоже в виде текста.


Заранее благодарен за ответ!
Михаил
Цитата
Дмитрий пишет:
Михаил, посдскажите как вывести Название раздела или подраздела инфоблока в виде текста.
А так же символьный код раздела тоже в виде текста.
Название раздела <?=$arSection["NAME"]?>
Символьный код раздела #SECTION_CODE#
Цитата
Михаил Базаров пишет:
Цитата
Дмитрий пишет:
Михаил, посдскажите как вывести Название раздела или подраздела инфоблока в виде текста.
А так же символьный код раздела тоже в виде текста.
Название раздела <?=$arSection["NAME"]?>
Символьный код раздела #SECTION_CODE#
Я имел в виду вывести one-room текущего элемента
http://hostingkartinok.com/show-image.php?id=fe6c2a960bdd9396f281f8e57d25674f
Михаил
Цитата
Гость сайта пишет:
Я имел в виду вывести one-room текущего элемента
То есть хотите символьный код вывести прямо на сайт? Затрудняюсь сходу сказать, ни разу такое в голову не приходило и как-то сомневаюсь что хоть однажды пригодится. По идее нужно сделать запрос через API битрикс и вызвать его в нужном месте.  
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Я имел в виду вывести one-room текущего элемента
То есть хотите символьный код вывести прямо на сайт? Затрудняюсь сходу сказать, ни разу такое в голову не приходило и как-то сомневаюсь что хоть однажды пригодится. По идее нужно сделать запрос через API битрикс и вызвать его в нужном месте.
Да именно на сайт, но не в публичную часть.
Хочу использовать как класс css.
Михаил
Цитата
Дмитрий пишет:
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Я имел в виду вывести one-room текущего элемента
То есть хотите символьный код вывести прямо на сайт? Затрудняюсь сходу сказать, ни разу такое в голову не приходило и как-то сомневаюсь что хоть однажды пригодится. По идее нужно сделать запрос через API битрикс и вызвать его в нужном месте.
Да именно на сайт, но не в публичную часть.
Хочу использовать как класс css.
Уже просто интересно: а зачем? То есть вообще не могу представить зачем это может быть нужно. То есть потом каждому из них хотите назначать свой стиль оформления? А если товаров 1000.
Цитата
Михаил Базаров пишет:
Цитата
Дмитрий пишет:
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Я имел в виду вывести one-room текущего элемента
То есть хотите символьный код вывести прямо на сайт? Затрудняюсь сходу сказать, ни разу такое в голову не приходило и как-то сомневаюсь что хоть однажды пригодится. По идее нужно сделать запрос через API битрикс и вызвать его в нужном месте.
Да именно на сайт, но не в публичную часть.
Хочу использовать как класс css.
Уже просто интересно: а зачем? То есть вообще не могу представить зачем это может быть нужно. То есть потом каждому из них хотите назначать свой стиль оформления? А если товаров 1000.
Ну почти так. Символьный код раздела может быть только уникальным. По-этому если элемент находиться в разделе ему необходимо применить свой. 1000 элементов не будет ни когда. Сфера не та...

А есть другие решения !?

Я конечно думал, можно еще сделать отдельным свойством, так тоже работать будет - но зачем когда есть раздел в котором находиться элемент.

А Вы не можете сделать код который надо вставить в шаблон!?

Я не понимаю API Битрикс. А сколько стоят курсы для того чтобы понимать в Вашем исполнении !? И какие первичные знания будут нужны !?
Михаил
Сделайте проще, вставьте в начале цикла

Код
<? 
  $step=0;  
  $step++;
?>
 
А к стилю каждого раздела

Код
<div class="razdel<? {echo $step;}?>"> Бла бла бла вся требуха раздела </div>
      
 
В итоге у всех разделов, друг за другом будут селекторы
.razdel1 {}
.razdel2 {}
.razdel3 {}
.razdel4 {}
...итд
и соответсвенно каждому свое оформление


Еще есть способ с нумерацией элемента вида
.razdel:nth-child (1) {}
.razdel:nth-child (2) {}
.razdel:nth-child (3) {}
.razdel:nth-child (4) {}
...итд

Если я вообще правильно понял суть задачи.
Вот страница http://themeforest.net/item/realocation-modern-real-estate-template/full_screen_preview/7112897
Мне нравиться сам эффект фильтрации, учитывая, что у нас элементов не много.

Там фильтруется по классу.
Сам фильтр я сделаю вручную, количество разделов исчерпывающие, список закрыт.
Всего 4 раздела.

Можно сделать и добавить свойство список в нем четыре позиции, но зачем (!) если уже элемент в разделе, можно вытащить символьный код он и будет классом, класс не будет меняться.
<?$APPLICATION->ShowCSS();?> как выводить стили с названием сайта
щас: /bitrix/templates/main/styles.css
надо: сайт.ру/bitrix/templates/main/styles.css
Михаил
Цитата
Ivan пишет:
<?$APPLICATION->ShowCSS();?> как выводить стили с названием сайта
щас: /bitrix/templates/main/styles.css
надо: сайт.ру/bitrix/templates/main/styles.css
Ни разу не задавался такой целью. А зачем (просто интересно)?
Михаил, доброе время суток. Скажите будите ли вы делать видео уроки по созданию интернет магазина?
Михаил
Цитата
Александр пишет:
Михаил, доброе время суток. Скажите будите ли вы делать видео уроки по созданию интернет магазина?
Гипотетически да, практически не знаю, времени нет на это
Цитата
Михаил Базаров пишет:
Цитата
Александр пишет:
Михаил, доброе время суток. Скажите будите ли вы делать видео уроки по созданию интернет магазина?
Гипотетически да, практически не знаю, времени нет на это
Очень жалко), очень хотелось бы посмотреть и расширить свой кругозор. У вас очень приятный голос, так и охота смотреть и смотреть )). Желаю вам побольше свободного времени.)))
Есть ли какая нибудь внутренняя функция, что бы узнать код текущего инфоблока, допустим, если у меня один шаблон применяется на несколько инфоблоков?
Скажите пож.. как сделать отдельную страницу "Отзывы" для сайта?
Что бы была она в меню и люди писали там отзывы про весь магазин в общем а не для отдельного товара.
Спасибо.
Может если есть у Вас урок по этой теме было бы превосходно!
Михаил
Цитата
Черкасов Владимир пишет:
Есть ли какая нибудь внутренняя функция, что бы узнать код текущего инфоблока, допустим, если у меня один шаблон применяется на несколько инфоблоков?
<?=arrResult['IBLOCK_ID']?>
Михаил
Цитата
Владимир пишет:
Скажите пож.. как сделать отдельную страницу "Отзывы" для сайта?
Что бы была она в меню и люди писали там отзывы про весь магазин в общем а не для отдельного товара.
Спасибо.
Может если есть у Вас урок по этой теме было бы превосходно!
Создайте инфоблок с правом на запись для пользователей, выведе его на сайт.
На отдельной странице (хотя можно и на этойже, смотря как у вас по дизайну расчитано), выведете компанент "Добавление элемента инфоблока" и разрешите людям в него писать.
Все
Все получилось! Есть только НО!
На странице появляются Имена и при нажатии на них открывается отзыв!
Нельзя ли как то сделать что бы они сразу открывались открытыми? как на всех сайтах! Что б при заходе на страницу отзывы были сразу имена (кто написал) и сам отзыв!!!
Спасибо!
Михаил
Цитата
Владимир пишет:
Все получилось! Есть только НО!
На странице появляются Имена и при нажатии на них открывается отзыв!
Нельзя ли как то сделать что бы они сразу открывались открытыми? как на всех сайтах! Что б при заходе на страницу отзывы были сразу имена (кто написал) и сам отзыв!!!
Спасибо!
Выведете описание детальное вместо описания анонса. В списке замените
Код
 <?echo $arItem["PREVIEW_TEXT"];?> на <?echo $arItem["DETAIL_TEXT"];?>

Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс

Показать еще