|
0 Всего найдено: 5
Melo
Сообщение
04/02/2010 14:20
Копия темы
[Решение] Как работать со связанными элементами в Битриксе? Многие очень часто сталкиваются с проблемой как же работать со связанными элементами? Это может произойти если вы используете характеристики в 1С, если у вас так организована структура магазина или даже просто так или иначе вам нужно с ними работать.. Далее, я опубликую код который, надеюсь, вам поможет. <? $arID = $arElement["ID"]; // id товара $IBlockID=15; // id инфоблока $arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM"); // поля $arFilter = array( "ACTIVE" => "Y", "IBLOCK_ID" => IntVal($IBlockID), "ACTIVE_DATE" => "Y", "PROPERTY_CML2_LINK" => $arID, ); // фильтр $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect); // метод GetList класса CIBlockElement // запускаем цикл while($ob = $res->GetNextElement()) { // получаем искомые поля $arFields = $ob->GetFields(); // задаем значения переменных для того, чтобы узнать цену товара $productID =$arFields["ID"]; $quantity=1; $renewal = "N"; // узнаем оптимальную цену методом GetOptimalPrice класса CCatalogProduct $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal); if (!$arPrice || count($arPrice) <= 0) { if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $USER->GetUserGroupArray())) { $quantity = $nearestQuantity; $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal); } } // отображение полученных значений echo 'Характеристика: '.$arFields["NAME"].''; echo 'Цена: '.$arPrice["PRICE"]["PRICE"].' руб'; ?> Надеюсь пригодится.
BossIT
Сообщение
04/02/2010 14:35
Копия темы
Никогда больше не публикуй подобный код. Для чего в $arFilter дважды проверка на ACTIVE?
Melo
Сообщение
04/02/2010 21:43
Копия темы
Да, качество кода здесь паршивое скорее всего, но вот типичный пример ситуации когда нужно это решение: Вы используете 1С-Управление Торговлей (с последними обновлениями) и у ваших товаров есть характеристики. От каждой характеристики зависит и цена. Битрикс при импорте номенклатуры характеристики заводит как отдельные элементы информационного блока "предложения" и связывает их с основным информационным блоком через связанные элементы. Стандартные шаблоны Битрикса компонента catalog не содержат, например, отображения цен и характеристик товаров на странице секции товаров. Это отображение реализовано лишь на странице детального отображения товара. На все мои вопросы в тех.поддержку был один ответ проблема частная и у тех.поддержки нет возможности ее решать. А теперь представьте такой случай вы выгрузили товары на сайт, а цен в списке товаров нет и отобразить их нельзя т.к. это "частный случай у вас". Правильно ли это? Нет. Для меня не составит труда больше не писать о подобных проблемах и их решениях. Я буду дальше решать их сам, но почему бы мне не помочь людям которые сталкиваются с подобного рода проблемами? Было бы не так уж и плохо, если бы были комментарии к коду по существу (спасибо за ACTIVE, исправил) это позволит и мне отследить где я могу ошибаться и людям подсказать варианты решений. Надеюсь кому-то это поможет. Все-таки несколько раз слово "спасибо" я услышал.. и это радует.
lvi
Сообщение
05/02/2010 00:02
Копия темы
да молодца. в любом коде можно найти огрехи. в данном случае, самое главное, чтобы он работал и выполнял свои функции, а уж затачивать его можно по ходу пьесы.
SolnceWeb
Сообщение
04/10/2010 17:01
Копия темы
0
это не просто поможет, это ...ц как помогло. Спасибо. |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |