Битрикс. Надо отредактировать этот код, чтобы выводить в виде массива
Надо отредактировать этот код (и код который в шаблоне компонента) так, чтобы вот это свойство принималось и выводилось в виде массива
$this->imagePropertyCode = $this->getOptionAsArray('IMAGE_PROPERTY_CODE'); Сам код который нужно редактировать
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
use Bitrix\Main\Loader;
use Bitrix\Main\Config\Option;
class AvagencyVideoProductComponent extends CBitrixComponent
{
private $videoPropertyCode;
private $imagePropertyCode;
public function __construct($component = null)
{
parent::__construct($component);
// Получаем коды свойств из настроек модуля и преобразуем в массив
$this->videoPropertyCode = $this->getOptionAsArray('VIDEO_PROPERTY_CODE');
$this->imagePropertyCode = $this->getOptionAsArray('IMAGE_PROPERTY_CODE');
}
private function getOptionAsArray($optionName)
{
$optionValue = Option::get('avagency.videoproduct', $optionName);
// Пробуем декодировать как JSON, если не получилось - используем explode
$array = json_decode($optionValue, true);
if (json_last_error() === JSON_ERROR_NONE && is_array($array)) {
return $array;
}
// Если это обычная строка с запятыми, то используем explode
return explode(',', $optionValue);
}
public function executeComponent()
{
if (!Loader::includeModule('iblock')) {
echo 'Модуль iblock не подключен';
return;
}
$productId = $this->arParams['PRODUCT_ID'];
if (!$productId) {
echo 'PRODUCT_ID не передан';
return;
}
foreach ($this->videoPropertyCode as $code) {
$this->arResult['DISPLAY_PROPERTIES'][$code] = $this->getProductVideo($productId, $code);
}
foreach ($this->imagePropertyCode as $code) {
$this->arResult['DISPLAY_PROPERTIES'][$code] = $this->getProductImages($productId, $code);
}
$this->includeComponentTemplate();
}
private function getProductVideo($productId, $videoPropertyCode)
{
$res = CIBlockElement::GetList(
[],
['ID' => $productId],
false,
false,
['ID', 'IBLOCK_ID', 'PROPERTY_' . $videoPropertyCode]
);
if ($element = $res->GetNext()) {
$videoFileIds = $element['PROPERTY_' . $videoPropertyCode . '_VALUE'];
if ($videoFileIds) {
return CFile::GetPath($videoFileIds);
}
}
return null;
}
private function getProductImages($productId, $imagePropertyCode)
{
$res = CIBlockElement::GetList(
[],
['ID' => $productId],
false,
false,
['ID', 'IBLOCK_ID', 'PROPERTY_' . $imagePropertyCode]
);
$images = [];
if ($element = $res->GetNext()) {
$imagesFileIds = $element['PROPERTY_' . $imagePropertyCode . '_VALUE'];
if (is_array($imagesFileIds)) {
foreach ($imagesFileIds as $fileId) {
$images[] = CFile::GetPath($fileId);
}
} elseif ($imagesFileIds) {
$images[] = CFile::GetPath($imagesFileIds);
}
}
return $images;
}
}
?>
Читайте также:
01:14
06:36
Вчера 23:47
Вчера 23:43
Moscow.media
Частные объявления сегодня
Детское радио покоряет Крайний Север
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Люберцах росгвардейцы задержали гражданина, находящегося в федеральном розыске
Королева призвала россиян беречь здоровье и не ходить к целителям
Новые возможности для юридической защиты бизнеса презентовали на площадке Уральской ТПП
ОБРАЩЕНИЕ фонда поддержки социально-гуманитарных, образовательных, медицинских и культурных программ «единство и милосердие»
Раиса Рязанова, исполнительница роли Тоси в фильме «Москва слезам не верит», негативно высказалась о попытках сделать ремейк
BBC in last-minute U-turn over decision to show major sport event for free as Great Britain aim to make history
Animal lovers try to counter the deadly risk of Chicago high-rises for migrating birds
Comer slams Raskin over his election certification comments: 'Ultimate hypocrite'
NIN-SIM linkage of all phone numbers completed, says NCC
Житель Уфы решил убить соседа и устроил взрыв в жилом доме
Поймайте его, если сможете: 17 октября в прокат выходит картина Дмитрия Клепацкого «Схватка»
Кроссовер Geely Cityray появился у российских дилеров
Где в нашей стране можно насладиться видом северного сияния? Вот парочка мест
Metaphor: ReFantazio стала одной из самых популярных игр ATLUS на релизе
To mark the launch of Metaphor: ReFantazio, Sega is going to make someone a real-life noble, but there's a catch—you'll be joining the nobility of an illegitimate nation in the North Sea with only one resident
Epic wants its Fortnite-Disney metaverse project to be 'what every Disney fan has ever wanted,' but don't expect Mickey Mouse to pick up an assault rifle
Metaphor: ReFantazio tips: 10 things I wish I knew before starting this 100-hour RPG
В Люберцах росгвардейцы задержали гражданина, находящегося в федеральном розыске
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
Собянин поздравил работников московской скорой помощи со 105-летием службы
В Люберцах росгвардейцы задержали гражданина, находящегося в федеральном розыске
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
Россиянам рассказали, как грядущие шестидневки повлияют на зарплаты
Катя Лель отозвала иск о защите чести и достоинства против Кушанашвили
Налоговый эффект. Рост экспортной пошлины сдержит внутренние цены на зерно
Арина Соболенко сместила Игу Швёнтек с первой строчки Чемпионской гонки WTA
Даниил Медведев отреагировал на пост Леброна Джеймса про Call of Duty
Соболенко обыграла Гауфф и вышла в финал турнира WTA в Ухани
Рыбакина гарантировала себе участие в Итоговом турнире WTA
Налоговый эффект. Рост экспортной пошлины сдержит внутренние цены на зерно
Музыкальные новости
Михаил Овчаров и Маргарита Эрдыниева покажут трогательную историю любви на сцене Бурятского театра оперы и балета
Аранжировка Песен. Аранжировка Музыки. Создание Аранжировок.
«Я только сегодня все поняла»: Лера Кудрявцева воссоединилась с Сергеем Лазаревым в Санкт-Петербурге
Продажа песен. Песни на продажу. Продажа текстов песен. Продажа песен правообладателями. Продать текст песни. Продать слова песни. Хочу продать песню.
Детское радио покоряет Крайний Север
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
Салимов: в конфликт Кадырова и Керимова не следует вовлекать общественность
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
Почему наши Песни являются Хитами:
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
В Московской области сотрудники Росгвардии задержали нетрезвого водителя
Садыр Жапаров: Запад не должен указывать Бишкеку, сотрудничать ли нам с РФ
Лавров вручил ректору МГИМО орден Александра Невского
Терпение Москвы не бесконечно: Путин пока тянет время
Большинство россиян готовы отдать за прием частного врача до 3 тыс. руб. - исследование
Пластическая хирургия – современные возможности
«Доброкачественные новообразования»: почему появляется «кортизоловое лицо»
«С бытовой точки зрения жизнь в Москве удобнее, чем в Монако»
Олимпийский призёр из Росгвардии Александр Бессмертных принял участие в Московском марафоне
«С бытовой точки зрения жизнь в Москве удобнее, чем в Монако»
В Московском марафоне приняли участие до 30 тысяч спортсменов
Суд отклонил иск с требованием удалить публикации о запертых детях в "Крокусе"
Собянин поздравил работников московской скорой помощи со 105-летием службы
Собянин рассказал об открытии дестких поликлиник после ремонта
Орнитолог Коблик: мурмурация нужна птицам для защиты от хищников
В филиал Московского зоопарка в Великом Устюге доставили краснокнижного зубра
Краснокнижный зубр доставлен в филиал Московского зоопарка в Великом Устюге
Страны СНГ выбрали сопредседателей на 2025 год
Станислав Кондрашов о том, как Китай выходит из недельного перерыва с новыми надеждами на успех
В Росавиации заявили о штатной работе аэропортов Москвы
Архангельск на старых гравюрах
Студент из Архангельска получил стипендию для стажировки в Китае: новые горизонты с Российскими студенческими отрядами
В Архангельске горел очередной “расселенный” деревянный дом: из соседних домов эвакуировали людей
Синоптик Ильин: этой зимой не избежать 30-градусных морозов в Подмосковье
Литературный час «Время мое в грядущем...».
Прогноз погоды в Крыму на 11 октября
Нездоровая ситуация: эксперт оценил взлет цены на красную икру в России
В Феодосии оценят ущерб от пожара на нефтебазе
Александр Хандажапов дебютирует в партии Бориса Годунова
Дима Билан поддержал поиски истощенного леопарда в Приморье
Три медали выиграли якутяне на Кубке России по пауэрлифтингу
Синоптики спрогнозировали дождливую погоду в Москве 15 октября