skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
Для сотрудников
»
Разработка
»
HostCMS
»
Статьи (по модулям)
»
Интернет-магазин
»
Полезные решения
»
Скрипт для удаления товаров и групп в зависимости от выбранных параметров
private:koding:hostcms:modules:shop:useful:delete_items
Media Files
====== Скрипт для удаления товаров и групп в зависимости от выбранных параметров ====== <code php><?php /** * Скрипт который удаляет товары и группы в зависимости от выбранных параметров * * @author Kozub Boris, KAD Systems (©) 2014 * @date 10-12-2014 */ // Удаление групп $delGroups = false; // Количество товаров за шаг $stepCount = 1000; // Id родительской группы, если не задан то не используется $parentGroupId = 0; // Id интернет магазина, если не задан то выборка делается из всех товаров $shopId = 0; $oItems = Core_Entity::factory('shop_item'); // Выборка из родительской группы и ее подгрупп if($parentGroupId) { $aGroupsId = array(); // Массив групп $aGroupsId[] = $parentGroupId; $aoCurGroups = array(Core_Entity::factory('Shop_group', $parentGroupId)); do { $aoParGroups = $aoCurGroups; $aCurGroupsId = array(); $aoCurGroups = array(); foreach($aoParGroups as $oParGroup) { $aCurGroupsId[] = $oParGroup->id; $aGroupsId[] = $oParGroup->id; } $oGroups = Core_Entity::factory('Shop_group'); $oGroups->queryBuilder() ->where('parent_id', 'IN', $aCurGroupsId); $aoCurGroups = $oGroups->findAll(); } while (count($aoCurGroups) != 0); $oItems->queryBuilder() ->where('shop_group_id', 'IN', $aGroupsId); } // Выборка из интернет магазина if($shopId) { $oItems->queryBuilder() ->where('shop_id', '=', $shopId); } $oItems->queryBuilder() ->limit($stepCount); $aoItems = $oItems->findAll(); $delCount = 0; foreach ($aoItems as $oItem) { if($oItem->delete()) { $delCount++; } } print '<br/>' . $delCount . ' items deleted!'; if(count($aoItems) == $stepCount) { $RedirectTime = 500; Core::factory('Core_Html_Entity_Script') ->type('text/javascript') ->value('setTimeout(location.reload(), ' . $RedirectTime . ')') ->execute(); } else { if($delGroups) { $groupDelCount = 0; if($shopId) { $aoDelGroups = Core_Entity::factory('Shop_group')->getAllByShop_id($shopId); } elseif(isset($aGroupsId) && count($aGroupsId)) { $oDelGroups = Core_Entity::factory('Shop_group'); $oDelGroups->queryBuilder() ->where('id', 'IN', $aGroupsId); $aoDelGroups = $oDelGroups->findAll(); } else { $aoDelGroups = Core_Entity::factory('Shop_group')->findAll(); } if(count($aoDelGroups)) { foreach($aoDelGroups as $oDelGroup) { $oDelGroup->delete(); $groupDelCount++; } } print '<br/>' . $groupDelCount . ' groups deleted!'; } }</code>
Save
Preview
Cancel
Edit summary
private/koding/hostcms/modules/shop/useful/delete_items.txt
· Last modified: 12.07.17 в 17:47 by
maximzasorin_gmail.com
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top