====== Преобразование строчных дополнительных свойств в списочные ====== queryBuilder()->where('site_id', '=', CURRENT_SITE)->where('name', '=', $oProperty->name); $oList = $oList->find(); if (!$oList->id) { $oList = Core_Entity::factory('list'); $oList->name = $oProperty->name; $oList->site_id = CURRENT_SITE; $oList->save(); } $list_id = $oList->id; // Ищем новое свойство или создаем $oNewProperty = Core_Entity::factory('property'); $oNewProperty->queryBuilder() ->where('name', '=', $oProperty->name) ->where('id', '!=', $property_id); $oNewProperty = $oNewProperty->find(); if (!$oNewProperty->id) { $oNewProperty = Core_Entity::factory('property'); $oNewProperty->name = $oProperty->name; $oNewProperty->type = 3; $oNewProperty->list_id = $list_id; $oNewProperty->tag_name = $oProperty->tag_name . "_list"; $oNewProperty->sorting = $oProperty->sorting; $oNewProperty->property_dir_id = $oProperty->property_dir_id; $oNewProperty->save(); $oNewProperty->add(clone $oProperty->Shop_Item_Property); } $property_new_id = $oNewProperty->id; // Получить все товары $oItems = Core_Entity::factory('shop_item'); $aoItems = $oItems->findAll(); // Пройтись по каждому foreach ($aoItems as $oItem) { // Получить значение доп. свойства $oValue = Kad_Property::getValue($oItem, $property_id); if ($oValue && $oValue->value != "") { $value = $oValue->value; $value = ucfirst($value); // Проверить наличие значения в списке $oValue = Core_Entity::factory('list_item'); $oValue->queryBuilder()->where('list_id', '=', $list_id)->where('value', '=', $value); $oValue = $oValue->find(); // Добавить, если нет if (!$oValue->id) { $oValue = Core_Entity::factory('list_item'); $oValue->list_id = $list_id; $oValue->value = $value; $oValue->save(); } // Установить значение для товара if ($oValue->id) { Kad_Property::setValue($oItem, $property_new_id, $oValue->id); echo $oItem->id . " " . $oItem->name . " OK
"; } } } } ?>
Страницу создал Артем Куц 12.07.16 в 18:18