1. Создаем файл result_modifier.php и размещаем в папку с компонентом news.list (например, news.list - services)
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if ($arResult["SECTION"]["PATH"]["0"]["PICTURE"]) {
$tmpFileID = $arResult["SECTION"]["PATH"]["0"]["PICTURE"];
$tmpFile = CFile::GetFileArray($tmpFileID);
$arResult["SECTION"]["PATH"]["0"]["PICTURE"] = $tmpFile;
}
2. В шаблоне news.list (news.list - services - templates.php)
<?if ($arResult["SECTION"]["PATH"]["0"]["PICTURE"]["SRC"]):?>
<img src="<?=$arResult["SECTION"]["PATH"]["0"]["PICTURE"]["SRC"]?>">
<?endif?>
<?
$res = CIBlockSection::GetByID($arResult['IBLOCK_SECTION_ID']);
$ar_res = $res->GetNext();
?>
<a href="<? echo $ar_res['SECTION_PAGE_URL']; ?>"><? echo $ar_res['NAME']; ?></a>
<?=GetMessage("NEWS_MORE")?>
В lang файле<?
$MESS["NEWS_MORE"] = "Подробнее";
?>
Вместо NEWS_MORE - любое ваше имя<?=$arItem["NAME"]?>
<?=$arItem["PREVIEW_PICTURE"]["DESCRIPTION"]?>
<?=$arItem["DETAIL_PICTURE"]["DESCRIPTION"]?>
<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>
<?=$arItem["DETAIL_PICTURE"]["SRC"]?>
<?$APPLICATION->ShowTitle()?> - собственно вывод тайтла в основном шаблоне сайта
<?$APPLICATION->ShowHead()?> - подключение для вывода в шаблоне сайта основных полей тега : мета-теги Content-Type, robots, keywords, description; стили CSS; скрипты
<?$APPLICATION->ShowPanel();?> - выводит панель управления администратора
<?=SITE_TEMPLATE_PATH?> - подставляет путь к шаблону
<?$APPLICATION->ShowTitle(false);?> - заголовок (в h1 например использовать)
<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"]?> - описание раздела инфоблока
<?=$arResult["DESCRIPTION"]?> - описание раздела в catalog.section
<?=$arResult["SECTION"]["PATH"][0]["~DESCRIPTION"]?> - вывод описания раздела в блоке news.list
<?=$arResult["SECTION"]["PATH"][0]["NAME"]?> - вывод в news.list названия раздела
<?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()); ?>
Если у инфоблока несколько свойств, то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе- списком. Но можно вывести их независимо друг от друга.
Для этого достаточно в шаблоне bitrix:news.detail вписать
<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>
Где:
DISPLAY_PROPERTIES - название свойства
ATTRIBUTE - код свойства
Чтобы вывести и название и значение свойства есть вариант:
<? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО']){?> //если не пустое
<?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?> //вывести название
<?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> //и значение
<?}?>
Чтобы вывести ссылку:
<? if ( $arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"] > 0 ) : ?>
<? echo '<a href="'.CFile::GetPath($arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"]).'">Скачать книгу</a> '; ?>
<? endif; ?>
Чтобы вывести свойство типа строка в режиме html:
<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['~VALUE'];?>
Что бы вевести свойство типа html/text:
<?=htmlspecialcharsBack($arResult["PROPERTIES"]["Название свойства"]["VALUE"]["TEXT"])?>
Свойство список в виде select
<select>
<option>Выберите</option>
<?$i=0;foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $arRazmer):?>
<option><?=$arRazmer?></option>
<?endforeach;?>
</select>
Множественное свойство типа список:
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<?if($pid =="ATT_COMPANY"): ?>
<li><span>Арендодатель:</span> <?echo $arProperty["DISPLAY_VALUE"];?></li>
<?endif?>
<?endforeach;?>
Вывести список связанных элементов со свойством привязка к элементам в виде списка
<?foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $analog):?>
<?$res = CIBlockElement::GetByID($analog);?>
<?if($ar_res = $res->GetNext())?>
<li><b><a href='<?=$ar_res["DETAIL_PAGE_URL"];?>'><?=$ar_res["NAME"];?></a></b></li>
<?endforeach;?>
<?$что_нибудь_понятное = CFile::GetPath($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"]);?>
<img src="<?echo $что_нибудь_понятное;?>" />
Свойство типа файл с ссылкой на загрузку файла
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<? if($pid =="СВОЙСТВА_АТРИБУТ"): ?>
<li>
<b>Дополнительные файлы</b>
<?if(is_array($arProperty["DISPLAY_VALUE"])):
echo implode($arProperty["DISPLAY_VALUE"]);
elseif($pid=="MANUAL"):
?>
<a href="<?=$arProperty["VALUE"]?>">Скачать</a>
<?else:
echo $arProperty["DISPLAY_VALUE"];?>
<?endif?>
</li>
<?endif?>
<?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<p><strong><?=$arProperty["NAME"]?></strong>:
<?if(is_array($arProperty["DISPLAY_VALUE"])):?>
<?=implode(" / ", $arProperty["DISPLAY_VALUE"]);?>
<?else:?>
<?=$arProperty["DISPLAY_VALUE"];?>
<?endif?>
</p>
<?endforeach;?>
<h1><?=$arResult["NAME"]?></h1> - вывод заголовка из названия элемента
<h1><?=$arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']?></h1> - вывод заголовка из вкладки SEO
<h1><?=$arResult["SECTION"]["PATH"][0]["NAME"]?></h1> - заголовок раздела
С разделами
<a href="<?=$arResult["SECTION"]["PATH"][0]["SECTION_PAGE_URL"]?>"><i class="fa fa-chevron-left" aria-hidden="true"></i><?=GetMessage("T_NEWS_DETAIL_BACK")?></a>