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

Ссылки в каталоге товаров

00 голосов
4
Добрый вечер, предлагаю разобраться с выводом ссылок в каталоге товаров. Пример: инфоблок "Страна производитель", в каталоге товаров в инфоблоке "товары" поле - Страна производитель - при выводе элементов каталога это свойство выводится как ссылка т.к. в массиве уже хранится ссылкой. Как с этим бороться??? Ну не хочу я, чтобы единицы измерения, страны, цвета и прочее выводилось ссылками, хочу просто текст!!!

Если есть дельные советы буду очень признателен за помощь.
спросил 13 Окт, 13 от chapaef (120 баллов)

4 Ответы

00 голосов
Всё в Ваших руках :)
Копируем шаблон компонента к себе в шаблон сайта http://dev.1c-bitrix.ru/learning/course/lesson.php?COURSE_ID=18&ID=938 и правим как хочется....
Для вывода того, что хранится в массиве с данными воспользуйтесь, например, самой простой конструкцией типа
Код
<pre><? print_r($arResult); ?></pre>
ну или http://dev.1c-bitrix.ru/community/webdev/user/47161/blog/2156/ и иже с ними....
ответил 02 Ноя, 13 от sickmind (4,660 баллов)
00 голосов
Здравствуйте. Спасибо за ответ.
Попытаюсь описать проблему детально. Есть каталог товаров, у товара есть свойства:
1. Простые - Габаритные размеры, артикул и т.п. Они приходят из массива в виде текста.
2. Ссылочные - Страна производитель, Производитель, это ссылки на другие инфоблоки, они приходят в виде ссылок на детальную страницу инфоблока.

Рассмотрим свойство Производитель (Инфоболок - Производители товаров):
Воспользовавшись описанной выше командой <pre><? print_r($arResult); ?></pre> я получаю значения массива:
Array ( [ID] => 16 [TIMESTAMP_X] => 2010-07-20 20:15:56 [IBLOCK_ID] => 6 [NAME] => Производитель [ACTIVE] => Y [SORT] => 42 [CODE] => firm [DEFAULT_VALUE] => [PROPERTY_TYPE] => E [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 9 [WITH_DESCRIPTION] => [SEARCHABLE] => N [FILTRABLE] => Y [IS_REQUIRED] => Y [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [PROPERTY_VALUE_ID] => 121 [VALUE] => 54 [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [~VALUE] => 54 [~DESCRIPTION] => [~NAME] => Производитель [~DEFAULT_VALUE] => [DISPLAY_VALUE] => ATTACK )


Поле [DISPLAY_VALUE] значение которого ATTACK это ссылочное значение. А я хочу просто текст наименования без ссылки на детальную страницу инфоблока. Отдельно в массиве нет текстового наименования производителя, только со ссылкой на детальную страницу инфоблока.

Файл формирования массива component.php. В нем этот массив формируется конструкцией
$arItem["DISPLAY_PROPERTIES"] = array();
foreach($arParams["PROPERTY_CODE"] as $pid)
{
$prop = &$arItem["PROPERTIES"][$pid];
if((is_array($prop["VALUE"]) && count($prop["VALUE"])>0) ||
(!is_array($prop["VALUE"]) && strlen($prop["VALUE"])>0))
{
$arItem["DISPLAY_PROPERTIES"][$pid] = CIBlockFormatProperties::GetDisplayValue($arItem, $prop, "catalog_out");
}
}
Чем можно заменить функцию CIBlockFormatProperties::GetDisplayValue($arItem, $prop, "catalog_out"), возвращающую отформатированное значение со ссылкое, что бы в массив попадали наименования свойст без ссылки.
ответил 07 Фев, 14 от chapaef (120 баллов)
00 голосов
В [VALUE] находится ID элемента. Получите полную информацию об этом элементе с помощью CIBlockElement::GetList http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php и выводите то, что надо. Можно даже будет картинку выводить :)
ответил 28 Май, 14 от sickmind (4,660 баллов)
00 голосов
Ну или ещё как вариант strip_tags http://www.php.ru/manual/function.strip-tags.html :)
ответил 24 Сен, 14 от sickmind (4,660 баллов)

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

0 голосов
0 ответов
спросил 09 Апр, 14 от Lilali (100 баллов)
0 голосов
3 ответов
спросил 03 Март, 14 от Mageradje (660 баллов)
0 голосов
3 ответов
0 голосов
2 ответов