Если у инфоблока несколько свойств, то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе- списком. Но можно вывести их независимо друг от друга.
Для этого достаточно в шаблоне bitrix:news.detail вписать
<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>
Где:
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:
Что бы вевести свойство типа 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 $что_нибудь_понятное;?>" />
Изображение торгового предложения
1<img src="<?=CFile::GetPath($arOffer["PREVIEW_PICTURE"])?>">
Свойство типа файл с ссылкой на загрузку файла
<?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?> <?endforeach;?>
Вывести множественное свойство типа файл, со всей информацией о файле: размер, название, транслитированное название, тип файла- в отдельной заметке.
Вывести колличество комментариев к элементу в списке новостей битрикс:
Вывести и отресайзить детальную картинку товара знаная ID товара (или элемента)
<? $res = CIBlockElement::GetByID($arItem["ITEM_ID"]); if($ar_res = $res->GetNext()){ $img = CFile::ShowImage($ar_res["DETAIL_PICTURE"], 50, 50, "border=0", "", true);} ?> <div class="bx_image" style="background-image: url('<?=$img?>')"></div>
Немного не в тему но может пригодиться: вывести колличество просмотров элемента инфоблока (с новостями точно работает):
К парметру вывода компанента добавить: "LIST_FIELD_CODE" => array(0=>"SHOW_COUNTER",1=>"",), "DETAIL_FIELD_CODE" => array(0=>"SHOW_COUNTER",1=>"",),
В нужном месте шаблона вставить <?=$arItem['SHOW_COUNTER']?> - для списка новостей <?=$arResult['SHOW_COUNTER']?> - для детальной новости
Немного костыльный, но однако способ: как вывести ссылку на детальный просмотр и изображение связанного элемента каталога. Для примера, имеем инфоблок с товарами и инфоблок с брендами. Нужно на странице бренда вывести все связанные элементы с ссылкой на детальный просмотр и картинку товара.
<?if(count($arResult["LINKED_ELEMENTS"])>0):?> <b>Товары этого бренда в нашем каталоге:</b> <?foreach($arResult["LINKED_ELEMENTS"] as $arElement):?>
//это ссылка на детальный просмотр <a href="<?=$arElement["DETAIL_PAGE_URL"]?>"> <?=$arElement["NAME"]?> </a>
//это картинка превью товара <? $res = CIBlockElement::GetByID($arElement["ID"]); if($ar_res = $res->GetNext()) echo CFile::ShowImage($ar_res['PREVIEW_PICTURE'], 200, 200, "border=0", "", true); ?> <?endforeach;?> <?endif?>
Свойство привязка к Google карте
<? $arProperty = $arResult["DISPLAY_PROPERTIES"]; ?> <? if (isset($arProperty['СВОЙСТВО'])):?> <? $arPos = explode(",", $arProperty['СВОЙСТВО']['VALUE']);?> <?$APPLICATION->IncludeComponent("bitrix:map.google.view", ".default", array( "INIT_MAP_TYPE" => "MAP", "MAP_DATA" => serialize(array( 'google_lat' => $arPos[0], 'google_lon' => $arPos[1], 'google_scale' => 13, 'PLACEMARKS' => array ( array( 'TEXT' => $arProperty["СВОЙСТВО_ГОРОД"]["VALUE"].", ".$arProperty["СВОЙСТВО_АДРЕС"]["VALUE"], 'LON' => $arPos[1], 'LAT' => $arPos[0], ), ), )), "MAP_WIDTH" => "600", "MAP_HEIGHT" => "600", "CONTROLS" => array( "SMALL_ZOOM_CONTROL", "SCALELINE" ), "OPTIONS" => array( "ENABLE_SCROLL_ZOOM", "ENABLE_DBLCLICK_ZOOM", "ENABLE_DRAGGING", "ENABLE_KEYBOARD" ), "MAP_ID" => "" ), false );?> <?endif;?>
Вывести любое множественное свойство:
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> <? if($pid =="MATERIAL"):?> <li><b><?=$arProperty["NAME"]?>:</b> <? if(is_array($arProperty["DISPLAY_VALUE"])): echo implode(" / ", $arProperty["DISPLAY_VALUE"]); elseif($pid=="MANUAL"): ?><a href="<?=$arProperty["VALUE"]?>"><?=GetMessage("CATALOG_DOWNLOAD")?></a><? else: echo $arProperty["DISPLAY_VALUE"];?> <?endif?></li> <?endif;?> <?endforeach;?>
Вывести теги с отправкой на страницу поиска
<? $arrTags = explode(',', $arResult["TAGS"]); $count = count($arrTags); $i = 0; foreach($arrTags as $value): $i++; $value = trim($value); echo ' <a href="/search/?tags='.str_replace(' ', '+', $value).'">'.$value.' </a>'; endforeach; ?>
Вывести дату создания элемента в правильном формате "22 января 2015"
<? $arParams["DATE_CREATE"]="j F Y"; echo CIBlockFormatProperties::DateFormat($arParams["DATE_CREATE"], MakeTimeStamp($arItem["DATE_CREATE"], CSite::GetDateFormat()));
?>
Вывести количество просмотров элемента инфоблока. Если просмотров нет, вывести 0
<?if (strlen($arItem['SHOW_COUNTER'])>0):?> <?=$arItem['SHOW_COUNTER']?> <?else:?> 0 <?endif;?>
Вывести количество комментариев к элементу инфоблока. Если просмотров нет, вывести 0
<?if (strlen($arResult['DISPLAY_PROPERTIES']['BLOG_COMMENTS_CNT']['DISPLAY_VALUE'])>0):?> <?echo $arResult['DISPLAY_PROPERTIES']['BLOG_COMMENTS_CNT']['DISPLAY_VALUE'];?> <?else:?> 0 <?endif;?>
Для этого создаем два пользовательских поле типа Файл и даем им коды UF_FILE и UF_SECOND_FILE. В шаблоне catalog.section.list создаем файл result_modifier.php с содержимым:
$db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ID"=>$arResult['SECTIONS']), true, $arSelect=Array("UF_FILE", "UF_SECOND_FILE")); while($ar_result = $db_list->GetNext()) { $arResult["UF_FILE"][$ar_result["ID"]] = CFile::GetPath($ar_result["UF_FILE"]); $arResult["UF_SECOND_FILE"][$ar_result["ID"]] = CFile::GetPath($ar_result["UF_SECOND_FILE"]); }
В нужном месте шаблона catalog.section.list выводим пути к этим файлам (могут быть картинкой, файлом, чем угодно)
$arResult['UF_FILE'][$arSection['ID']]; $arResult['UF_SECOND_FILE'][$arSection['ID']];
![]()
Гость сайта
|
Подскажите пожалуйста, так как я ну ни как не могу найти и понять...( Как изменить в комментариях слово "Guest" и как сделать "Ваш E-Mail:" обязательным для гостей. В настройках форума стоит - Настройки для незарегистрированных пользователей: запросить e-mail у гостя. Но не работает, форма для email есть, но толку нет, можно отправить комментарий не вводя email (
|
![]()
Михаил Базаров
|
||
В Сервис - Форум - Список форумов - Конкретный форум: на вкладке "Настройки" устанавливаете чекбоксы "Запросить e-mail у гостя" и "Использовать CAPTCHA (если нужна)" |
||
![]()
Гость сайта
|
||
|
||
![]()
Михаил Базаров
|
||||
PS Могу ошибаться, относится ли "мыло" к персональной информации (с точки зрения закона, так-то конечно относится). Во всяком случае в стандартном функционале ящики гостей ни где не сохраняются. |
||||
![]()
Дмитрий Рунов
|
Это только вывод для детальной новости ? Или код подойдет и для списка новостей ?
|
![]()
Михаил Базаров
|
||||
Просто меняйте (правильно применяйте) массивы
|
||||
![]()
Дмитрий
|
А как вывести автора элемента !?
|
![]()
Михаил Базаров
|
||||||
|
||||||
![]()
Александр
|
Здравствуйте Михаил.
С помощью этого кода можно вывести одно свойство: <? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО'] ;) {?> //если не пустое <?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?> //вывести название <?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> //и значение <?}?> а если нужно вывести не одно свойство а двадцать свойств: пример: у ноутбуков пять свойств, у планшетов три свойства от свойств ноутбуков и два новых свойств, у мониторов совсем другие свойства подскажите пожалуйста как быть в этом случае? чтобы шаблон не увеличился на 60-ть строк) |
![]()
Михаил Базаров
|
||
|
||
![]()
Александр
|
Я не имел ввиду детальное описание, в детальном описании вывод работает, а мне нужно вывести в место анонса определенные инфоблоки, я и воспользовался вашим компонентом для добавление свойств и прописал их в своем шаблоне сайта, вывод свойств работает но у меня этих строк которые я писал выше 14х3 это еще не всё по плану их должно быть 40х3. Может можно как нибудь вывести свойства инфоблоков списком типа:
"DISPLAY_PROPERTIES" => array( 0 => "WIFI", 1 => "os", 2 => "HDD", ), чтобы вывести название и значение свойства |
![]()
Сергей
|
Подскажите, как вывести свойства - "Привязка к элементам в виде списка"?
|
![]()
Александр
|
||||||||
|
||||||||
![]()
Дмитрий
|
Как вывести свойство строка - я делаю как в уроке было показано.
Но чтобы он вывел цену не 10000руб, а 10 000 - т.е. с пробелом после 10 ? Версия Битрикса самая простая! |
![]()
Михаил Базаров
|
||
|
||
![]()
Денис
|
||
<?= "<div class='textname'>". $arResult['PROPERTIES']['ATTSIZES']['NAME'] .": </div>";?> <?$attsizes = $arResult['PROPERTIES']['ATTSIZES']['VALUE'];?> <?asort($attsizes); foreach ($attsizes as $item){ echo "<span class='attsizes'>" . $item . "</span>" . "\n"; }?> |
||
![]()
Олег
|
Здравствуйте. Помогите, пожалуйста. В общем, проблема такая: создал инфоблок, одно лишь свойство PHOTOS, в котором 4 изображения. В настройках инфоблока в разделе "Настройки списка - Свойство" нет моего свойства PHOTOS.
Именно поэтому такой код ничего не дает: <?$photo = CFile::GetPath($arResult["PROPERTIES"]["PHOTOS"]["VALUE"&];?> <img src="<?echo $photo;?>" /> Мне посоветовали самому вписать свойство, но оно, как мне сказали будет называться не PHOTOS, а как-то по-другому. Так как мне узнать, что писать в "Настройки списка - Свойство", как узнать, как еще это свойство PHOTOS может называться? |
![]()
Михаил Базаров
|
||
Но так как у вас множественное свойство, метод все равно не поможет. Вам сюда |
||
![]()
Максим
|
Михаил, если требуется у инфоблока товары, вывести связанные элементы из этого же инфоблока, например для вывода сопуствующих элементов? можете выложить код?
|
![]()
Виталий Элс
|
||
По поводу множественного свойства типа список - я делаю по другому - рабочий вариант:
|
||
![]()
Айдын
|
Добрый день!
Меня интересует вопрос: как разбить строку множественного свойства инфоблока? <?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> <small> <span class = "properties"> <?=$arProperty["NAME"]?>: </span> <br> <?if(is_array($arProperty["DISPLAY_VALUE"] );?> ![]() ![]() ![]() ![]() <?else:?> <?=$arProperty["DISPLAY_VALUE"];?> <?endif?> </small><br /> <?endforeach;?> Пробовал добавить explode, но получалась ошибка. Ломаю голову, потому что очень надо. Кроме этого нужно добавить к элементам свойства счетчик. Буду благодарен за оказанную мне помощь. |
![]()
Роман
|
Здравствуйте, Михаил.
Подскажите пожалуйста. Как отдельно вывести свойство типа "Список"? В списке может быть выбран 1 и более элементов. Никак не получается. Всю голову сломал ![]() |
![]()
Guest
|
||
|
||
![]()
Михаил Базаров
|
||||
foreach |
||||
![]()
Vaqif
|
Здравствуйте Михаил. Не знаю туда ли пишу.
Просто никак не получается сделать так чтобы торговые предложения выводились random. У меня сайт дверей. Есть 5 вариантов цветов для выбора дверей. При выводе товаров по умолчанию они выводятся все одного цвета, страница смотрится не очень. Хотелось бы вразброску. Пробовал вариант сортировка по индексу сортировки, при этом у т.п. каждого предложения ставил разные индексы. Не реагирует никак. Спасибо. |
![]()
Михаил Базаров
|
||
|
||
![]()
Vaqif
|
||
Может надо какое то собственное поле создать и по нему сортировать? Если так, надо просто выбрать ДРУГОЙ и добавить код поля? Еще раз извините если вопросы не по теме. |
||
![]()
Андрей Сергеевич
|
Множественное свойство типа список:
<?if(is_array($arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE'])):?> <?=implode(" / ",$arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE']);?> <?else:?> <?=$arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE'];?> <?endif?> |
![]()
Андрей Сергеевич
|
Вывести множественное свойство типа строка :
|
![]()
Лёнька Щелкунов
|
||
Привет Михал!
Подскажите пожалуйста, почему данная конструкция не работает?
|
||
На нем, уже много видеоуроков по 1С-Битрикс. Как одиночные видео так и серии видеоуроков Перейти на канал
Совсем скоро выйдет видеокурс по разработке доски объявлений с мобильным приложением. Подписывайтесь и будьте в курсе: