Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как вывести все значения множественного свойства инфоблока?

00 голосов
8
Добрый день всем!

1С-Битрикс: Управление сайтом 10.0.4
Версия инфоблоков: 10.0.2

Тип инфоблока: новости.
Создал Множественное свойство инфоблока "Похожие материалы" с типом "Привязка к элементам в виде списка".
Соответственно, задача - вывести похожие материалы для пользователей из этого же инфоблока


Вывел его:

<div><span><?=$arResult['DISPLAY_PROPERTIES']['MMT']['NAME']?>:</span>
<span> <?=$arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE']?></span></div>

Если выбрать несколько значений инфоблока, после названия вместо вывода появляется Array,
если выбрать только одно - все ок, одно значение выводится.

Вопрос: как вывести все значения множественного свойства?

Заранее спасибо!
спросил 26 Июнь, 13 от Kotoro (200 баллов)

8 Ответы

00 голосов
Ну Вы наверное попробовали так как сказано в http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=34&LESSON_ID=1910
там где:
Цитата
Использовать диалог Параметры компонента, который можно вызвать, дважды кликнув на иконке компонента в рабочей области страницы:

т.е. в Параметрах компонента указываете какие свойства выводить...
или вопрос был о другом....
ответил 26 Июнь, 13 от EDKA (980 баллов)
00 голосов
В настройках компонента указано, какие свойства выводить.
Вопрос состоит в том, что я не могу вывести более одного значения множественного свойства.

Я создал свойство "похожие материалы" с типом "Привязка к элементам в виде списка".

Соответственно, при создании материала выбираю ДВА похожих на созданный материал из выпадающего списка - и вместо этих значений выводится надпись Array.

Если выбираю только 1 материал - он его выводит в нужном месте шаблона.

Как вывести 2 и более?
ответил 24 Июль, 13 от Kotoro (200 баллов)
Вы как-то решили эту проблему?
00 голосов
Может, я недостаточно данных дал, раз ответа нет?
ответил 27 Окт, 13 от Kotoro (200 баллов)
00 голосов
TonyShee, вам рассказать, как делается обход массива на php? Или что?
ответил 31 Янв, 14 от Texnik (1,860 баллов)
00 голосов
Цитата
Julliet пишет:
TonyShee, вам рассказать, как делается обход массива на php? Или что?
Мне просто нужно вывести все значения одного свойства и все.
Неужели необходимо писать скрипт обхода массива?

Ткните хотя бы носом в документацию с примерами - самое малое, что прошу.
Может быть, я неправильно изъясняюсь и Вы не понимаете, чего я хочу?
ответил 20 Май, 14 от Kotoro (200 баллов)
00 голосов
Цитата
TonyShee пишет:
вместо этих значений выводится надпись Array

вот этот массив вам и надо обойти! и вывести его значения!напишите 
<pre><?var_dump(Ваше нещастное свойство);?></pre>


и все увидите. 
напишите в гугле "обход массива php"
ответил 16 Сен, 14 от Texnik (1,860 баллов)
00 голосов
Добавил строчку <pre><?var_dump(MTT);?></pre>
Мне вывелось: string(3) MTT.
Что мне это дало - я не понимаю.

Как человек, далекий от программирования, воспользовался этим циклом:
Код
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
   <?=$arProperty["NAME"]?>:<b>&nbsp;
<?
   if(is_array($arProperty["DISPLAY_VALUE"])):
   echo implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);
   ?>
<?
   else:
   echo $arProperty["DISPLAY_VALUE"];?>
   <?endif?></b><br />
<?endforeach?>
Но он выводит все значения всех свойств, а мне нужно только все значения одного.
Куда мне идентификатор или код свойства пихнуть, подскажите, пожалуйста
ответил 21 Янв, 15 от Kotoro (200 баллов)
00 голосов
Код
            <?if(is_array($arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE'])):?>
                <?=implode("&nbsp;/&nbsp;",$arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE']);?>
            <?else:?>
                <?=$arResult['DISPLAY_PROPERTIES']['MMT']['DISPLAY_VALUE'];?>
            <?endif?>
ответил 06 Май, 15 от NitroGeN (2,840 баллов)

Похожие вопросы

0 голосов
4 ответов
0 голосов
2 ответов
0 голосов
1 ответ
0 голосов
0 ответов
0 голосов
0 ответов