Меню

Как вывести свойства инфоблока по отдельности и немного плюшек не в тему

   RSS
Как вывести свойства инфоблока по отдельности и немного плюшек не в тему
 
Как вывести свойства инфоблока по отдельности и немного плюшек не в тему

Если у инфоблока несколько свойств- то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе- списком. Но можно вывести их независимо друг от друга.
Ответить
Ответы
 
Подскажите как в bitrix:search.page  (результатах поиска стандартного компонента) вывести дополнительное свойство FILE в виде ссылки
 
Цитата
ivdic пишет:
Подскажите как в bitrix:search.page (результатах поиска стандартного компонента) вывести дополнительное свойство FILE в виде ссылки
вставляю

<? echo $arResult['PROPERTIES']['FILE']['VALUE'];?>
и
<? echo $arResult['DISPLAY_PROPERTIES']['FILE']['DISPLAY_VALUE'];?>


вообще ничего не выводится...может где какие переменные надо объявить?
 
аууу... есть кто живой тут?
 
Хотя бы весь листинг кода привели...
 
Здравствуйте Михаил!

Пытаюсь вывести отдельное свойство ссылкой:  

Код
 <? if ( $arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"] > 0 ) : ?> 

    <? echo '<a href="'.CFile::GetPath($arItem["PROPERTIES"]["ATT_articul"]["VALUE"]).'">Скачать книгу</a> '; ?> 

    <? endif; ?>  
 
 



в файле: catalog.section ,  но что-то не получается. Помещаю этот код в отдельный див после дива с тайтлом. Не подскажите что делаю не так, не получается разобраться.
Код
     
 
Вывести множественное свойство привязка к элементам в виде списка.


Код
<?foreach($arResult["PROPERTIES"]["TRENER"]["VALUE"] as $analog):?>
    <?$res = CIBlockElement::GetByID($analog);?>
    <?if($ar_res = $res->GetNext())?>

        <img src="<?=CFile::GetPath($ar_res["PREVIEW_PICTURE"])?>">
        <?=$ar_res["NAME"];?>
        <?=$ar_res["PREVIEW_TEXT"];?>

        <p><?=$ar_res["DISPLAY_PROPERTIES"]["TEL_TRENER"]["VALUE"];?></p>
<?endforeach;?>
 

Стандартные свойства выводятся, последнее (тип строка) не выводится
 
Здравствуйте! Подскажите пожалуйста как вывести по отдельности свойства элемента в catalog.top?
 
Цитата
Алексей Сель написал:
Здравствуйте! Подскажите пожалуйста как вывести по отдельности свойства элемента в catalog.top?
Точно также как и в catalog.section у них шаблоны принципиально не отличаются
 
Цитата
Михаил Базаров пишет:
Цитата
Алексей Сель написал:
Здравствуйте! Подскажите пожалуйста как вывести по отдельности свойства элемента в catalog.top?
Точно также как и в catalog.section у них шаблоны принципиально не отличаются
использую
Код
<?=$arItem['PROPERTIES']['BR_PRICE']['VALUE']?>
нефига не происходит(  
 
Цитата
Алексей Сель написал:
Цитата
Михаил Базаров  пишет:
Цитата
Алексей Сель написал:
Здравствуйте! Подскажите пожалуйста как вывести по отдельности свойства элемента в catalog.top?
Точно также как и в catalog.section у них шаблоны принципиально не отличаются
использую
Код
 <?=$arItem['PROPERTIES']['BR_PRICE']['VALUE']?> 
нефига не происходит(  
Потомучто в топе, как и в catalog.section, нужно использовать $arElement

<?=$arElement['PROPERTIES']['BR_PRICE']['VALUE']?>
 
Цитата
Михаил Базаров пишет:
Цитата
Алексей Сель написал:
Цитата
Михаил Базаров пишет:
Цитата
Алексей Сель написал:
Здравствуйте! Подскажите пожалуйста как вывести по отдельности свойства элемента в catalog.top?
Точно также как и в catalog.section у них шаблоны принципиально не отличаются
использую
Код
  <?=$arItem['PROPERTIES']['BR_PRICE']['VALUE']?>  
нефига не происходит(
Потомучто в топе, как и в catalog.section, нужно использовать $arElement

<?=$arElement['PROPERTIES']['BR_PRICE']['VALUE']?>
arElement тоже пробовал, не работает, у меня в общем ТОП это  слайдер для популярных товаров, выводится на главную, может есть разница какая то что он вне комплексного компонента вставлен?
 
Михаил, добрый вечер.
Подскажите пожалуйста, в детальном просмотре выводятся дополнительные свойства, порядка 10 штук, в одном месте.
Среди них есть 1 свойство, содержащее ссылку на видео, его нужно выводить на этой же странице, но в другом месте. С этим проблем нет, его мы выводим отдельно.

Вопрос, как можно удалить это свойство, содержащее ссылку на видео из вывода всех полей, которые выводятся через foreach? Пробовал через unset почему то не получилось, также пробовал через continue. Тоже безрезультатно. Какие ещё могут быть варианты?
 
Здравствуйте, подскажите пожалуйста почему не выводится свойство
<?if(!empty($arResult["DETAIL_PICTURE"]["SRC"])):?>

      <div class="tickets_block">

           <?if($arResult['PROPERTIES']['ATT_TICKETS']['VALUE_XML_ID']=='Y'):?>        
                 <span class="tickets_icon"></span>
           <?endif?>

<img src="<?=$arResult["DETAIL_PICTURE"]["SRC"];?>" alt="<?=$arResult["NAME"];?>" class="actions">
</div>
<?endif;?>
В каталоге работает, а вот в news.detail не срабатывает.
Изменено: Елена Беляева - 21.03.2019 14:07:48
 
Добрый день, Михаил!

В комплексном каталоге этот код не работает:
Код
<? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО']{?> //если не пустое 
<?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?>  //вывести название 
<?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?>  //и значение  
Опытным путем подобрал рабочий:
Код
<? if ($arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"]){?>
<?=$arItem["PROPERTIES"]["СВОЙСТВО"]['NAME']?> 
<?=$arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"];?>
<?}?> 
Я только начинаю осваивать Битрикс и пока не понимаю, в чем отличия arResult от arItem, DISPLAY_PROPERTIES от PROPERTIES, DISPLAY_VALUE от VALUE, а также какие кавычки ставить.

Еще может кому пригодится код для создания ссылки:
Код
<? if ($arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"]){?>
<a href="<?=$arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"];?>"><?=$arItem["PROPERTIES"]["СВОЙСТВО"]["NAME"];?></a>
<?}?> 
 
 
Огромное спасибо за материал! Сколько миллонов раз я его использовала на сайтах, просто не описать словами!
 
Здравствуйте! Помогите пожалуйста разобраться.
Данный код выводит название элемента и ссылку на него.
Как вывести вместо название элемента вывести свойство?
Код
<?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;?>
Название элемента
Код
<li><b><a href='<?=$ar_res["DETAIL_PAGE_URL"];?>'><?=$ar_res["NAME"];?></a></b></li>
Свойство элемента
Код
<li><b><a href='<?=$ar_res["DETAIL_PAGE_URL"];?>'><?=$ar_res["Свойство"];?></a></b></li>
Надеюсь понятно объяснил)
 
Здравствуйте! Подскажите, пожалуйста,
Хочу вывести срок годности на видном месте, где он заполнен. Использую ваш 1 пример <? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО']){?> //если не пустое <?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?> //вывести название <?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> //и значение <?}?>
Но Не работает. Сейчас использую вот такой <div class="expired"><?=$arResult['PROPERTIES']['GODEN_DO']['VALUE']['NAME'];?></div> Показывается, но имя свойста "Годен до" везде отображается, даже у товаров у которых он не заполнен. Как правильно задать условие, чтобы показывалось имя свойства только при условии заполненного значения? Заранее спасибо.
 
Цитата
Максим написал:
Здравствуйте! Подскажите, пожалуйста,
Хочу вывести срок годности на видном месте, где он заполнен. Использую ваш 1 пример <? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО']){?> //если не пустое <?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?> //вывести название <?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> //и значение <?}?>
Но Не работает. Сейчас использую вот такой <div class="expired"><?=$arResult['PROPERTIES']['GODEN_DO']['VALUE']['NAME'];?></div> Показывается, но имя свойста "Годен до" везде отображается, даже у товаров у которых он не заполнен. Как правильно задать условие, чтобы показывалось имя свойства только при условии заполненного значения? Заранее спасибо.

Добрый
Попробуйте вот так:
Код
<?if (strlen($arResult['PROPERTIES']['GODEN_DO']['VALUE']) !== 0) {?>
   <?=$arResult['PROPERTIES']['GODEN_DO']['NAME'];?>:
    <?=$arResult['PROPERTIES']['GODEN_DO']['VALUE'];?>
<?}?>
Изменено: Михаил Базаров - 04.07.2022 09:20:53
 
Подскажите, пожалуйста, как вывести отдельное свойство инфоблока, у которого несколько значений должны быть разделены запятой
 
Цитата
Андрей написал:
Подскажите, пожалуйста, как вывести отдельное свойство инфоблока, у которого несколько значений должны быть разделены запятой

Если правильно понял вопрос:
Код
<?
echo implode(', ', $arResult['DISPLAY_PROPERTIES']['ВАШЕ_СВОЙСТВО']['VALUE']);
?>
Изменено: Михаил Базаров - 31.08.2022 23:23:37
 
Цитата

<?
echo implode(', ', $arResult['DISPLAY_PROPERTIES']['ВАШЕ_СВОЙСТВО']['VALUE']);
?>
Супер! То что надо, спасибо!
Изменено: Михаил Базаров - 02.09.2022 15:13:54
 
Михаил, добрый день!
Подскажите, пожалуйста, как в общем списке выделить отдельное свойство элемента цветом?  
 
Уточнение к предыдущему вопросу
Как сделать, чтобы отдельное свойство элемента в общем списке выводилось определенным цветов (или курсивом)
Имеется ввиду и имя и значение (и [NAME] и [DISPLAY_VALUE])
 
Цитата
Андрей написал:
Уточнение к предыдущему вопросу
Как сделать, чтобы отдельное свойство элемента в общем списке выводилось определенным цветов (или курсивом)
Имеется ввиду и имя и значение (и [NAME] и [DISPLAY_VALUE])

Можно, просто версткой, получив нужное свойство через nth-child()
Например, если третье в списке:
Код
ul li:nth-child(3) {
  font-style:italic;
  color: red;
}
Изменено: Михаил Базаров - 08.12.2022 14:52:25
 
Цитата
написал:
Код
 ul li:nth-child(3) {
  font-style:italic;
  color: red;
}
 
Это не подойдет. Свойства могут быть заполнены не все. Соответственно порядковые номера у строк величина не постоянная. Но все равно спасибо за ответ
 
Цитата
Андрей написал:
Цитата
написал:
Код
  ul li:nth-child(3) {
  font-style:italic;
  color: red;
}
Это не подойдет. Свойства могут быть заполнены не все. Соответственно порядковые номера у строк величина не постоянная. Но все равно спасибо за ответ

Тогда посложнее заморочка)

Код
foreach ($arResult["DISPLAY_PROPERTIES"] as $pid => $arProperty):
if ($arProperty['CODE'] == 'КОД_НУЖНОГО_СВОЙСТВА') {
         // Тут вертим нужное свойство с нужными стилями
} else {
       // Остальные свойства
}
endforeach
Изменено: Михаил Базаров - 10.12.2022 15:45:07
 
Цитата
написал:

Тогда посложнее заморочка)
Код
 foreach ($arResult["DISPLAY_PROPERTIES"] as $pid => $arProperty):
if ($arProperty['CODE'] == 'КОД_НУЖНОГО_СВОЙСТВА') {
         // Тут вертим нужное свойство с нужными стилями
} else {
       // Остальные свойства
}
endforeach
Михаил, еще раз благодарю за ответ. Это то что надо!
Хотя я пока решил вопрос по другому. Стиль меняется в зависимости от ИМЕНИ свойства. Не идеально, конечно, но мне подойдёт. Вот код, может кому будет интересно:

Код
<dl>
<?php
foreach ($arResult[&#39;DISPLAY_PROPERTIES&#39;] as $property) {?>
            <dt<? if($property[&#39;NAME&#39;] == &#39;Примечание&#39;) { echo &#39; class="prop-note"&#39;;}?>><?=$property[&#39;NAME&#39;]?></dt>
            <dd<? if($property[&#39;NAME&#39;] == &#39;Примечание&#39;) { echo &#39; class="prop-note"&#39;;}?>>
                <?=(
                    is_array($property[&#39;DISPLAY_VALUE&#39;])
                        ? implode(&#39; ~ &#39;, $property[&#39;DISPLAY_VALUE&#39;])
                        : $property[&#39;DISPLAY_VALUE&#39;]
                    )?>
            </dd>
            <?php
        }
        unset($property);
        ?>
    </dl>
    <?php
}
?>


Поддерживаю проект скромным донатом )
Изменено: Михаил Базаров - 11.12.2022 12:22:34
 
Да, еще если эти условия по выбору отдельных стилей поcтоянно меняются и не хочется лазить в код из за смены условия.
Можно использовать примечание у свойства, как-то так:
Код
foreach ($arResult["DISPLAY_PROPERTIES"] as $pid => $arProperty):
?>
<li class="<?=$arProperty['HINT']?>">
     <?=$arProperty['NAME']?>: <?=$arProperty['VALUE']?>
</li>
<?
endforeach

В самом примечании, собственно нужный class или style
Изменено: Михаил Базаров - 11.12.2022 17:32:26
 
Как вывести множественное свойство типа список, чтобы вывести Значение и XML_ID в массиве ?
Задачи - создать перелинквку из товара, прописав название и ссылки на статичные страницы сайта.
Ответить
Читают тему (гостей: 1)
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Получить список элементов инфоблока с ценами с помощью D7

Задача: использовать D7 в 1С-Битрикс для получения списка элементов инфоблока вместе с их ценами. Это может быть полезно...

Заполнить поля пользователя из свойства заказа, на примере ФИО

При создании заказа покупатель заполняет поле "ФИО". Необходимо скопировать эти данные в профиль пользователя (не путать...

Добавить СЕО-метатеги в результаты поиска по каталогу

Задача: на странице с результатами поиска по каталогу нужно установить уникальные метатеги: keywords, description, canon...

Если товар в корзине, поменять значение input на "В корзине"

Если Вам нужно поменять текст на кнопке, добавляющей товар в корзину, достаточно воспользоваться методом API "CSaleBaske...

Бонус на внутренний счет пользователя по информации из 1С

Задача: 1С-Предприятие каждый день выгружает HL справочник на сайт с количеством бонусов контрагента в виде "XML-ID...

Создание локальных уведомлений для приложения на Apache Cordova

Задача состоит в том, чтобы реализовать возможность локальных уведомлений в приложении на Apache Cordova без использован...

Если предложение SKU в корзине, поменять кнопку добавления на "В корзине"

Данная заметка является дополнением к ранее опубликованной: Если товар в корзине, поменять значение input на "В корзине"...

Cordova, ввод в input под диктовку. Голосовой поиск в мобильном приложении.

Итак, задачка: реализовать голосовой поиск в мобильном приложении на Cordova. По сути, нам нужно захватить речь с микроф...

Как добавить режим редактирования элементов в собственном компоненте Битрикс

Задача: добавить режим редактирования и удаления элементов в собственном компоненте.