Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777

Как вывести цвет товара в магазин из файла выгрузки (сайт на Битриксе)

19.06.2016, 14:57. Показов 2349. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеются два файла обработчика файлов выгрузки от поставщиков. Файл 1.php обрабатывает информацию так, что значение цвета товара передается на страницу с товаром, а файл 2.php этого не делает.
Какой код взять из файла 1.php и вставить в 2.php, чтобы значение цвета тоже передавалось на страницу с товаром?

Заранее благодарен за помощь.
Вложения
Тип файла: rar файлы 1 и 2.rar (7.0 Кб, 3 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2016, 14:57
Ответы с готовыми решениями:

Интернет магазин на Битриксе, вывод на главную новинок
Привет. Подскажите. пожалуйста, как в битриксе на первой странице сделать так, чтобы отображались 6 новинок вместо 4. В каком файле что...

Вы посетили магазин и купили 10 видов товара. В таблицу Т[1:10] вы записали количество купленного товара каждого вида.
Вы посетили магазин и купили 10 видов товара. В таблицу Т вы записали количество купленного товара каждого вида. В таблицу С записали цены...

Как определить по внешним признакам сайт на Битриксе и можно ли эти признаки скрыть?
Коллеги, добрый день. Понятно, что сайт на Битриксе, как и на любой другой CMS, можно определить, анализируя код страницы. Ссылки на...

27
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,905
Записей в блоге: 4
21.06.2016, 21:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alanat Посмотреть сообщение
Это так оформить?
Можно упростить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$id = ($rXML[categoryId] == 117) ? 942 : 948;
$arElement = array(
    "NAME" => $name =wi( $rXML[nm]),
    "IBLOCK_ID" => $IBLOCK_ID,
    "ACTIVE"=>$active_, 
    //"TIMESTAMP_X"=>  ConvertTimeStamp($timeINT ,"FULL"),
    "IBLOCK_SECTION_ID" => $id, // Новое поступление handybrands
    "CODE" => CUtil::translit($name." ".$rXML[sku] , "ru", $defTranslit)."-".wi($rXML[id_]),
    "PREVIEW_TEXT" => wi($rXML[description]),
    "PREVIEW_TEXT_TYPE" => "html",
    "PROPERTY_VALUES"=> $PROP,      
    "DETAIL_PICTURE" => $detailPicture
);
0
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777
21.06.2016, 21:54  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
Можно упростить
А если мне необходимо будет добавить еще один-два if, т.е. если $rXML[categoryId] == 117, то "IBLOCK_SECTION_ID" => 942, если $rXML[categoryId] == 118, то "IBLOCK_SECTION_ID" => 955 и.т.д, но во всех остальных случаях"IBLOCK_SECTION_ID" => 948
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,905
Записей в блоге: 4
21.06.2016, 22:07
Цитата Сообщение от alanat Посмотреть сообщение
А если мне необходимо будет добавить еще один-два
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// разместите эту функцию где нибудь в начале файла
function transform_id($id, $transform) {
    return array_key_exists($id, $transform) ? $transform[$id] : $transform['default'];
}
 
// пример использования
$id = transform_id(
    $rXML[categoryId],
    array(
        117       => 942,
        118       => 955,
        'default' => 948
    )
);
0
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777
21.06.2016, 22:25  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
// разместите эту функцию где нибудь в начале файла
а
PHP
1
2
3
4
5
6
7
8
9
// пример использования
$id = transform_id(
    $rXML[categoryId],
    array(
        117       => 942,
        118       => 955,
        'default' => 948
    )
);
непосредственно перед

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$arElement = array(
    "NAME" => $name =wi( $rXML[nm]),
    "IBLOCK_ID" => $IBLOCK_ID,
    "ACTIVE"=>$active_, 
    //"TIMESTAMP_X"=>  ConvertTimeStamp($timeINT ,"FULL"),
    "IBLOCK_SECTION_ID" => $id, // Новое поступление handybrands
    "CODE" => CUtil::translit($name." ".$rXML[sku] , "ru", $defTranslit)."-".wi($rXML[id_]),
    "PREVIEW_TEXT" => wi($rXML[description]),
    "PREVIEW_TEXT_TYPE" => "html",
    "PROPERTY_VALUES"=> $PROP,      
    "DETAIL_PICTURE" => $detailPicture
);
??
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,905
Записей в блоге: 4
21.06.2016, 22:28
alanat, наверно...

Не по теме:

что то мне поднадоело за вас думать...

0
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777
22.06.2016, 18:19  [ТС]
На тот случай, если в значениях цвета и материала встретятся пробелы (в начале и конце) и большие буквы (и сразу заменить их на маленькие) я вставил if-strtolower и trim, но они почему-то не работают. Я неправильно сделал?
PHP
1
2
3
4
5
6
7
8
9
10
/** @var SimpleXMLElement $param */
                foreach ($offer->{'param'} as $param) {
                /** @var string $name */
                    $param_name = trim(wi((string) $param->attributes()->{'name'}));
                    if (array_key_exists($param_name, $transform)) {
                        $rXML[$transform[$param_name]] = (string)$param;
                        if ($param_name == "Цвет") $rXML[$transform[$param_name]] = strtolower ($rXML[$transform[$param_name]]);
                        if ($param_name == "Материал") $rXML[$transform[$param_name]] = strtolower ($rXML[$transform[$param_name]]);
                    }
                }
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,905
Записей в блоге: 4
22.06.2016, 18:26
alanat, strtolower только для однобайтовых кодировок, а у вас там UTF-8 - нужна mb_strtolower
0
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777
22.06.2016, 19:18  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
alanat, strtolower только для однобайтовых кодировок, а у вас там UTF-8 - нужна mb_strtolower
Не работает. Пытаюсь проверить почему. Вставил echo-exit. Выдает не ту кодировку: "Цвет рјсѓр»рёс‚сЊрєрѕр»рѕсЂ"

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
                /** @var SimpleXMLElement $param */
                foreach ($offer->{'param'} as $param) {
                /** @var string $name */
                    $param_name = trim(wi((string) $param->attributes()->{'name'}));
                    if (array_key_exists($param_name, $transform)) {
                        $rXML[$transform[$param_name]] = (string)$param;
                        if ($param_name == "Цвет") 
                                {
                                    $rXML[$transform[$param_name]] = mb_strtolower ($rXML[$transform[$param_name]]);
                                    echo $param_name." ".$rXML[$transform[$param_name]];
                                    exit();
                                    }
                        if ($param_name == "Материал") $rXML[$transform[$param_name]] = mb_strtolower ($rXML[$transform[$param_name]]);
                        
                    }
                }
Добавлено через 7 минут
Скорее всего "Цвет" в кириллице, а значение в UTF-8. Как привести к одному значению?

Добавлено через 7 минут
Уже разобрался. Добавил wi

Добавлено через 12 минут
Цитата Сообщение от Cra3y Посмотреть сообщение
alanat, strtolower только для однобайтовых кодировок, а у вас там UTF-8 - нужна mb_strtolower
Все-таки не разобрался. Если делаю так, то исчезают некоторые символы, а какие-то значения вообще не читаются
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/** @var SimpleXMLElement $param */
                foreach ($offer->{'param'} as $param) {
                /** @var string $name */
                    $param_name = trim(wi((string) $param->attributes()->{'name'}));
                    if (array_key_exists($param_name, $transform)) {
                        $rXML[$transform[$param_name]] = wi((string)$param);
                        if ($param_name == "Цвет") {
                                                    $rXML[$transform[$param_name]] = mb_strtolower($rXML[$transform[$param_name]]);
                                                    if ($rXML[$transform[$param_name]] == "мулитьколор") $rXML[$transform[$param_name]] = "мультиколор";
                                                    }
                        
                        if ($param_name == "Материал") $rXML[$transform[$param_name]] = mb_strtolower ($rXML[$transform[$param_name]]);
                        
                    }
                }
Добавлено через 4 минуты
В общем, в файле-выгрузки цвета бывают черный, Черный. Бываю добавляют пробелы после "черный". Я хотел сам это убрать при чтении файла выгрузки, но не получилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.06.2016, 19:18

Как вывести ссылку на категорию товара на странице товара?
Товар у меня это bitrix::catalog.element Категория - это у меня Рабочий стол - Контент - Каталоги - Входные двери - Каталог входных...

Как вытащить значение из файла выгрузки магазина
Добрый день! Имеется файл выгрузки xml от интернет-магазина. Он загружается ко мне на сайт автоматически, для чего я его и...

Нужен скрипт для выгрузки прайса товара с Яндекс.Маркет в XML/YML
Нужен скрипт или модуль выгрузки прайса товара с сайта в xml/yml

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

Как создать сайт интернет магазин
Порекомендуйте какую CMS выбрать для интернет магазина. Лучше не сомоделку,чтобы хотябы немного известная(чтобы найти программистов если...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. Сразу отвечу: А в PvP с ним. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru