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

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Как вывести свойства инфоблока по отдельности и немного плюшек не в тему

Если у инфоблока несколько свойств- то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе- списком. Но можно вывести их независимо друг от друга.
А как вывести автора элемента !?
Цитата
Дмитрий пишет:
А как вывести автора элемента !?
Код
 <? 
      $create_user=$arResult["CREATED_BY"]; /ловим ID создателя 
      $GLOBALS['users'] = array("CREATED_BY" => $create_user); 
      $userid= $create_user;; /подставляем пойманый ID 
      $rsUser = CUser::GetByID($userid); 
      $arUser = $rsUser->Fetch(); 
      echo $arUser["NAME"]; //выводим имя 
?>
 
Автор с ссылкой на его страницу

Код
<?  $create_user=$arResult["CREATED_BY"];   
   $GLOBALS['users'] = array("CREATED_BY" =>  
   $create_user);  $userid= $create_user; 
   $rsUser = CUser::GetByID($userid);   
   $arUser = $rsUser->Fetch();  
?>  
<b>Добавил</b>:  
<a href="/users/<? echo $create_user;?>/" > 
     <? echo $arUser["NAME"];?> 
</a>  
По поводу множественного свойства типа список - я делаю по другому - рабочий вариант:
Код
<? foreach($arResult["DISPLAY_PROPERTIES"]["ATT_COMPANY"]["VALUE"] as $ZNACH):?>
              <? if ($ZNACH == 'Свойство_1'): ?> 
              <p>Выведет контент для свойства 1</p>
              <? endif ?>
              <? if ($ZNACH == 'Свойство_2'): ?>
              <p>Выведет контент для свойства 2</p>
              <? endif ?>
              <? if ($ZNACH == 'Свойство_3'): ?>
              <p>Выведет контент для свойства 3</p>
              <? endif ?>
<? endforeach?>

Добрый день, подскажите пожалуйста, я в инфоблоке создал свойства, в параметре компонента  - детальный просмотр, выделяю это свойство, но в Редактирование элемента его нет(
Цитата
Dmitriy Ivanov написал:
Добрый день, подскажите пожалуйста, я в инфоблоке создал свойства, в параметре компонента  - детальный просмотр, выделяю это свойство, но в Редактирование элемента его нет(
Сбросте настройки формы, наверное у вас кастомизированная
Цитата
Андрей Сергеевич написал:
<?foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $k=>$value):?>
  <?=$value?> <?=$arResult["PROPERTIES"]["СВОЙСТВО"]["DESCRIPTION"][$k]?></li>  
<?endforeach?>  
       
 
Спасибо! Оч. помогло!
Здравствуйте, хочу вывести цену отдельно от общего списка свойств, использую
Код
<? echo $arResult['DISPLAY_PROPERTIES']['BR_PRICE']['~VALUE'];?>,

все хорошо, но теперь вопрос, а как мне это свойство исключить из общего списка?
Просто уберите его из выборки. Прям в настройках компонента снимите выделение. А этот код преобразуйте в
Код
<? echo $arResult['PROPERTIES']['BR_PRICE']['~VALUE'];?>

Оно будет выводиться не зависимо, от того что указано в настройках компонента
Цитата
Посмотрите примеры еще внимательнее, нужно передавать код свойства а не название
Название свойства: Статус партнера
Код свойства: PARTNER_STATUS
Тип: Строка

В примере
<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>
Где:
DISPLAY_PROPERTIES - название свойства
ATTRIBUTE - код свойства

Встввляю:
<? echo $arResult['Статус партнера']['PARTNER_STATUS']['DISPLAY_VALUE'];?>

Такое сочетание не работает. Как сделать правильно?
<? echo $arResult['DISPLAY_PROPERTIES']['PARTNER_STATUS']['DISPLAY_VALUE'];?>
Вывести множественное свойство привязка к элементам в виде списка.


Код
<?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']?>
Огромное спасибо за материал! Сколько миллонов раз я его использовала на сайтах, просто не описать словами!
Здравствуйте! Помогите пожалуйста разобраться.
Данный код выводит название элемента и ссылку на него.
Как вывести вместо название элемента вывести свойство?
Код
<?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'];?>
<?}?>
Подскажите, пожалуйста, как вывести отдельное свойство инфоблока, у которого несколько значений должны быть разделены запятой
Цитата
Андрей написал:
Подскажите, пожалуйста, как вывести отдельное свойство инфоблока, у которого несколько значений должны быть разделены запятой

Если правильно понял вопрос:
Код
<?
echo implode(', ', $arResult['DISPLAY_PROPERTIES']['ВАШЕ_СВОЙСТВО']['VALUE']);
?>
Цитата

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

Можно, просто версткой, получив нужное свойство через nth-child()
Например, если третье в списке:
Код
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
Цитата
написал:

Тогда посложнее заморочка)
Код
 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
}
?>


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

В самом примечании, собственно нужный class или style
Как вывести множественное свойство типа список, чтобы вывести Значение и XML_ID в массиве ?
Задачи - создать перелинквку из товара, прописав название и ссылки на статичные страницы сайта.
Подскажите, а как группировать выводимые св-ва , например ширина высота глубина   в группу Размеры - чисто для визуального подсвечивания

Размеры

  ширина 500мм
  высота  100мм
  глубина 400мм
Штатно никак, но в маркетплейсе был модуль для реализации подобного.
Единственное, видел его лет 5-6 назад. Живой ли еще, не известно.
Михаил, приветствую. А есть ли у тебя заготовка или может подскажешь:
надо у товаров выводить что то типа вариантов комплектации, создал инфоблок с множественным св-м товары в комплектации .
Это привязка к элементам каталога. А у товаров создал поле Привязать комплектацию ( тоже множественное) .
Теперь на карточке товара надо сделать слайдер вывода этих товаров из всех подвязанных комплектаций.

Допустим у товара подвязано две комплектации в каждой комплектации по три товара в итоге должно в слайдер вывестись 6 товаров из обоих комплектаций.
Но еще по кнопке с названием комплектации оставлять в слайдере только эти товары  
Что-то пока не смог переварить задачу) На уровне логики запутался
Цитата
Что-то пока не смог переварить задачу) На уровне логики запутался
ок: есть у товаров свойство множественное - варианты комплектации.
Каждый вариант это элемент другого инфоблока , у которого есть множественное свойство - привязка к товарам.
Т. Е: В каждом варианте подкреплено несколько товаров.

Получается у нас к товару инфоблока «каталок товаров» я привязываю Варианты ( элементы другого инфоблока) - в которых также содержатся по несколько «товаров».  

И теперь в детальной у товара каталога нужно выводить варианты комплектации   в раскрытом виде- те лучше в слайдер всех товаров из вариантов привязанных к нему.

Допустим есть товар «компрессор » . Показываем что он может быть комплектоваться вариантом 1 ( и выводим товары варианта 1) , комплектоваться вариантом 2 ( и выводим товары варианта 2) и тд.  

Вот все товары всех вариантов должны быть выведены по умолчанию а при нажатии на ссылку вариант1 оставаться только товары которые стоят в варианте 1  
Миша привет, спасибо за уроки!  вот подскажи,   получаю в компоненте самописном  вот такой массив   , см принтскрин.
подскажи как мне в шаблон отображать картинку "детайл пикчер" именно картинкой а не просто путь ,   как забрать в шаблон и сформировать в тэг img src ?
Заранее спасибо  
Дык она в
Код
$ИМЯ_МАССИВА_ТВОЕГО['DETAIL_PICTURE']['SRC']
Этот ключ и используй)

На вопрос двумя сообщениями выше - пока не могу ответить. Искренне не понимаю задачу. Напиши не решение (как сделал) а изначальну задачу (что и зачем делаем). Душей понимаю что можно сделать проще - но пока плохо "впитал" начальную задачу.
Цитата
На вопрос двумя сообщениями выше - пока не могу ответить. Искренне не понимаю задачу.
у товаров в карточке надо выводить демонстрацию с чем этот товар считается .  (варианты с этим товаром) . допустим товар можно сочетать тремя вариантами- вариант 1 , вариант 2 вариант3 . каждый вариант несет в себе сопутствующие товары . в варианте 1 - 2 товара, в варианте 2 - 3 товара, в варианте 3 - 4 товара.
В катрочке товара (детейл) это надо сделать таким блоком :  
Если правильно "въехал" проще всего варианты сделать торговыми предложениями основной карточки.
У этих ТП, да, свойство множественная привязка к элементам другого инфоблока.
При выборе конкретного ТП передаем его ID в Ajax обработчик (или GET/REQEST - если нужно обновить страницу с уникальным URL)
- который по этому ID найдет все связанные с ним элементы другого инфоблока и обновит блок со слайдером.
Цитата
При выборе конкретного ТП передаем его ID в Ajax обработчик (или GET/REQEST - если нужно обновить страницу с уникальным URL)
- который по этому ID найдет все связанные с ним элементы другого инфоблока и обновит блок со слайдером.
Михаил спасибо за подсказки, но вот с эти совсем не понятно, есть у тебя где то примеры в уроках или видео?  буду очень благодарен
Не - ни уроков ни примера нет. Очень специфичная задача
Михаил  подскажи пожалуйста,  как выводить вторую цену у товара, обновились до бизнеса с малого бизнеса завели в модуле магазина вторую цену?  где она хранится в битриксе. как ее искать, чтоб в скписке выводить и в карточке?
В настройках компонентов нужно выбрать все цены для вывода. В самих ценах выставить права на просмотр и покупку для пользователей.
В общем, это немножко не сюда вопрос)
Стандартный функционал битрикса (модели каталога и магазина) по работе с ценами
Цитата
В общем, это немножко не сюда вопрос)
Стандартный функционал битрикса (модели каталога и магазина) по работе с ценами                
так у меня шаблон верстан под одну цену был, теперь что добавать чтоб цену выводить? не разберусь, надо и в карточке и в списках .
вот что то типа этого нашел CDBResult GetCatalogGroups( string by, string order );
Из любого штатного шаблона можно дернуть работу с выводом цен. Из того что под рукой было:
Код
<?foreach($arResult["PRICES"] as $code=>$arPrice):?>
         <?if($arPrice["CAN_ACCESS"]):?>
            <p><?=$arResult["CAT_PRICES"][$code]["TITLE"];?>&nbsp;
            <?if($arParams["PRICE_VAT_SHOW_VALUE"] && ($arPrice["VATRATE_VALUE"] > 0)):?>
               <?if($arParams["PRICE_VAT_INCLUDE"]):?>
                  (<?echo GetMessage("CATALOG_PRICE_VAT")?>)
               <?else:?>
                  (<?echo GetMessage("CATALOG_PRICE_NOVAT")?>)
               <?endif?>
            <?endif;?>:&nbsp;
            <?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
               <s><?=$arPrice["PRINT_VALUE"]?></s> <span class="catalog-price"><?=$arPrice["PRINT_DISCOUNT_VALUE"]?></span>
               <?if($arParams["PRICE_VAT_SHOW_VALUE"]):?><br />
                  <?=GetMessage("CATALOG_VAT")?>:&nbsp;&nbsp;<span class="catalog-vat catalog-price"><?=$arPrice["DISCOUNT_VATRATE_VALUE"] > 0 ? $arPrice["PRINT_DISCOUNT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT")?></span>
               <?endif;?>
            <?else:?>
               <span class="catalog-price"><?=$arPrice["PRINT_VALUE"]?></span>
               <?if($arParams["PRICE_VAT_SHOW_VALUE"]):?><br />
                  <?=GetMessage("CATALOG_VAT")?>:&nbsp;&nbsp;<span class="catalog-vat catalog-price"><?=$arPrice["VATRATE_VALUE"] > 0 ? $arPrice["PRINT_VATRATE_VALUE"] : GetMessage("CATALOG_NO_VAT")?></span>
               <?endif;?>
            <?endif?>
            </p>
         <?endif;?>
      <?endforeach;?>
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 500 000 руб. от 5-ти недель

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

Запуск сайта на готовом решении

от 150 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 550 000 руб. от 5-ти недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 300 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфоресурс

от 300 000 руб. от 4-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

3D‑моделирование, визуализация

от 25 000 руб. от 3-х дней

По вашим фото, чертежам или описанию создадим 3D‑модели и отрендерим набор изображений для каталога товаров: общий вид, крупные планы и технические ракурсы или 360°‑обзор товара.