Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
aleks683
6 / 0 / 1
Регистрация: 12.03.2014
Сообщений: 9
1

В элементе "новости" вывести привязанные элементы определенным образом

12.03.2014, 00:26. Просмотров 6534. Ответов 3
Метки нет (Все метки)

Знатаки битрикса пожалуйста помогите!!!

В ИБ "новости" создал множественное свойство привязка к элементам, заполнил свойство элементами с другого ИБ "каталог".

Теперь стоит задача в элементе "новости" вывести привязанные элементы примерно так:

В элементе "новости" вывести привязанные элементы определенным образом


Сколько я перечитал, перепробовал и опять перечитал в итоге получилось только:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "PROPERTY_36");
$arFilter = Array(
   "ID"=>$arResult["ID"],
   "IBLOCK_ID"=>4, 
   "ACTIVE"=>"Y",
   "INCLUDE_SUBSECTIONS" => "Y",
   "!PROPERTY_36"=>false
   );
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>3), $arSelect);
while($ar_fields = $res->GetNext())
{
 $ar_Mat = CIBlockElement::GetByID($ar_fields["PROPERTY_36_VALUE"]);
 $arM = $ar_Mat->GetNext();
 echo "<a href=".$arM["DETAIL_PAGE_URL"].">".$arM["NAME"]."</a>"."<br>";
}
?>
36 - свойство привязка к элементам
Результат: Названия привязанных элементов в виде ссылки на нужную страницу и всё (((
Как вытащить нужные свойства этих ссылок??? (картинку, цену, артикул и желательно кнопку купить).

Хотел попробовать второй вариант через компонент элементы каталога и сделать фильтр:


PHP
1
2
3
4
<? 
  $arrFilter = array(); 
  $arrFilter['!PROPERTY_<код свойства>'] = false; 
?>
но показывает только элемент в котором свойство и на всех страницах...
Может есть более простой способ?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 00:26
Ответы с готовыми решениями:

Как изменить название главной в элементе "Хлебные крошки"
Доброе время суток. Подскажите, не могу найти, как изменить &quot;Главная&quot; в...

Как добавить в конец title на странице /?SHOWALL_1=1 - "Все новости" ?
на сайт было внедрено добавление &quot;Страница &quot; в title на страницах пагинации...

Заменить надписи "новинка", "спецпредложение" и "лидер продаж" в шаблоне компонента
День добрый. Уже второй день ищу информацию по этому вопросу. Может и...

$arSelect = Array("x", "y", .,"N"); - где почитать ,что можно тянуть?
$arSelect = Array(&quot;ID&quot;, &quot;NAME&quot;,&quot;DETAIL_PAGE_URL&quot;,&quot;картинка&quot;); вот как...

Как вывести значения в свойстве с типом "привязка к элементу"?
Как вывести значения в свойстве с типом &quot;привязка к элементу&quot;? Что для этого...

3
dolte
Человек
324 / 198 / 63
Регистрация: 04.02.2013
Сообщений: 1,192
12.03.2014, 10:22 2
Я привязку вытягивал так

PHP
1
2
3
4
5
<?foreach($arResult["PROPERTIES"]["JOBS_STRINGNEWS"]["VALUE"] as $analog):?>
<?$res = CIBlockElement::GetByID($analog);?>
<?if($ar_res = $res->GetNext())?>
<span class="analog"><a href="/jobs/<?=$ar_res["CODE"];?>/"><?=$ar_res["NAME"];?></a></span><br/>
<?endforeach;?>
а вообще вот документация, там всё понятно расписано.
http://dev.1c-bitrix.ru/api_help/ibl...nt/getbyid.php
http://dev.1c-bitrix.ru/api_help/ibl...nt/getlist.php

Добавлено через 5 минут
все нужные свойства через getList
0
aleks683
6 / 0 / 1
Регистрация: 12.03.2014
Сообщений: 9
12.03.2014, 23:00  [ТС] 3
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Да это понятно, выше код дает точно такой же эффект.

Как вывести свойства из свойство ["JOBS_STRINGNEWS"].
Надо вывести свойство: цена, артикул, картинку и т.д.

а вообще вот документация, там всё понятно расписано.
http://dev.1c-bitrix.ru/api_help/ibl...nt/getbyid.php
http://dev.1c-bitrix.ru/api_help/ibl...nt/getlist.php
Читал миллион раз и ничего не получилось ((
Можете подсказать хоть примерный код???

Добавлено через 7 часов 29 минут
Тему можно закрывать.
Решение:
У вас есть ИБ "Новости". У него свойство с кодом 36 - это привязка к элементам ИБ "Каталог".

Алгоритм действий следующий: вам нужно получить ИД привязанных элементов, по этим ИД получить информацию из ИБ "Каталог".
Если вы хотите ещё и получить кнопку "Купить", то лучший способ - вставить компонент bitrix:catalog.section.

Т.к. вставлять один компонент в шаблон другого не рекомендуется, то нужно использовать файл component_epilog.php

Подробнее
1. В папке шаблона вашего компонента news.detail (которым вы выводите новость) создаёте файл component_epilog.php
2. В этом файле получаете массив ИД связанных элементов из свойства PROPERTY_36
$arIDs = $arResult["PROPERTIES"]["36"]["VALUE"]
3. Формируете фильтр для компонента
global $arNewsFilter;
if (count ($arIDs) > 0)
{
$arNewsFilter = Array ("ID" => $arIDs);


}
4. Подключаете компонент, в настройках которого указываете название фильтр, убираете задание ИД раздела, ставите галочку "показывать все элементы, если не задан раздел"
5. Настраиваете шаблон
0
Itachi261092
Веб-Разработчик
79 / 79 / 9
Регистрация: 23.01.2012
Сообщений: 696
13.03.2014, 14:45 4
Цитата Сообщение от aleks683 Посмотреть сообщение
echo "<a href=".$arM["DETAIL_PAGE_URL"].">".$arM["NAME"]."</a>"."<br>";
Ну. всё верно. ты же в эхо выводишь то что и пишешь - название со ссылкой.
Ни разу не трогал связанные товары но если оно работает по аналогии с любым другим свойством то должно быть примерно так:

такие вещи делаются в 2 захода. сначала ты в result_modifier.php шаблона твоего компонента модифицируешь итоговый массив $arResult, добавляя в него вложенный массив с твоими связанными элементами. например $arResult["DOP_ELEMENTS"]; перед добавлением ты делаешь выборку и выбираешь какие свойства тебе нужны в итоговом массиве элементов. это через foreach arResult["ITEMS"]...
Потом ты в самом шаблоне, в template.php в нужном месте пишешь код <?echo.... $arResult["DOP_ELEMENTS"]...?> и так уже форматируешь вывод. а у тебя каша какая то не понятная
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2014, 14:45

Нужно после нажатия на кнопку "Добавить в корзину" вывести сообщение
Имеется магазин одежды. При нажатии на кнопку &quot;Корзину&quot; происходит отправка...

Netcat. Не работает "главная", вместо неё открывается "сайт на разработке"
Здравствуйте. Есть сайт. При вводе доменного имени открывается страница...

Как вывести кнопку "Купить"?
Имеется шаблон ...catalog.section. Выводит список товаров из выбранного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru