208 похожих чатов

Всем привет. такой вопрос: есть товары с торговыми. у торговых цвета

заданы как элементы инфоблока.
при выводе на странице получается что картинка цвета выводится из анонса элемента цвета.
может быть есть какой-то способ чтобы бралась картинка не из анонса, а из свойства элемента цвета?

10 ответов

11 просмотров

В документации по гетлисту есть информация, как получить свойства связанных элементов. https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php

Max V
спасибо, но это не то)

Если у тебя в инфоблоке торговых предложений есть свойство цвет, которое имеет тип "ссылка на элемент инфоблока", а у того элемента, на который она ссылается есть какое-то свойство, которое ты хочешь выводить в шаблон, то это как раз то) Вроде даже в настройках каталога есть пункт типа " Свойства связанных элементов ". Там можно руками, через точку прописать что выводить. Но в последнем случае не факт, что выведется или выведется там где надо.

Max-V Автор вопроса
Alexey Nazarov
Если у тебя в инфоблоке торговых предложений есть ...

Три инфоблока: 1-каталог 2-торговые 3-цвета (у него есть свойство Файл MINI_COLOR_PIC, где хранится нужная мне картинка) В торговых есть свойство Цвет, которые привязано к иблоку Цвета. Все выводится как на скрине и работает корректно. Но, картинка цвета (1) берется из превью элемента иблока Цвета. Я хотел изменить чтобы картинка цвета бралась бы из MINI_COLOR_PIC элемента Цвет, а не из PREVIEW_PICTURE Но как я понял это невозможно, т.к. в ядре жестко прописано что для типа привязка к элементу брать из превью (в CIBlockPriceTools\getTreePropertyValues)

Alexey Nazarov
В документации по гетлисту есть информация, как по...

Если вы внимательно почитаете упомянутую документацию, там речь о ПОЛЯХ связанных элементов, а не свойствах.

Max V
screenshot Три инфоблока: 1-каталог 2-торговые 3-цвета (у нег...

Для публички можете написать сами, для админки нет.

Eugene Zhukov
Если вы внимательно почитаете упомянутую документа...

PROPERTY_<PROPERTY_CODE>.<FIELD> Да, затупил, спасибо) Почему-то был уверен, что и свойства так можно вытащить.

Max V
screenshot Три инфоблока: 1-каталог 2-торговые 3-цвета (у нег...

Учитывая вышесказанное, в result_modifier шаблона детальной страницы товара можно через CIBlockElement::GetProperty с фильтром по id связанного элемента, и коду MINI_COLOR_PIC. И свойство же типа файл? Тогда по его id можно получить детальную инфу для вывода в шаблоне через CFile::GetFileArray

Alexey Nazarov
Учитывая вышесказанное, в result_modifier шаблона ...

Берете айди привязанного элемента и через ciblockelement getlist получаете все его свойства, у вас же наверное свойство множественное. А файл да, через getfilearray

Max-V Автор вопроса
Alexey Nazarov
Учитывая вышесказанное, в result_modifier шаблона ...

почти так и сделал, только у меня эта задача возникла в списке элементов. дополнительно получать ID элементов Цвет не нужно, т.к. они уже есть в дефолте $arResult['SKU_PROPS'] а дальше дернул необходимые свойства, и заменил + дополнил сам $arResult['SKU_PROPS'] (в начальном описании не указывал это, есть еще свойство отвечающее за вывод рамочки если цвет "слишком" светлый), получилось как-то вот так (скрин). не знаю насколько это правильно, но в целом применимо даже для дефолтного шаблона из коробки, не надо будет лезть править шаблон.

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

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
например asm AT&T ... label: .string "hi" ... # not error lea label(%rip), %rax # error ( not compile ) mov %rip, %rax # not error mov (%rip), %rax из форумов прочитал чт...
Simple Sorcerer
6
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
Карта сайта