Программное удаление нескольких представлений хранилища
Я пытаюсь удалить несколько представлений хранилища с помощью php-скрипта, который включает app/Mage.php
в корневой каталог моей установки.
Я могу получить список веб-сайтов и сохранить просмотры, но мне нужно каким-то образом проанализировать их в методе delete()
в виде массива, зацикливаясь на каждом store_id
, чтобы удалить те, которые мне больше не нужны.
Кроме того, мне нужно найти способ отфильтровать store_id
, чтобы я не удалял представление магазина по умолчанию или администратора.
Вот что у меня есть так далеко:
/** Load Magento **/
umask(0);
require_once 'app/Mage.php';
/** Load webstes and stores */
echo "Website ID: " . Mage::app()->getWebsite()->getId() . "<br/>";
echo "Website Name: " . Mage::app()->getWebsite()->getName() . "<br/>";
echo "Store ID: " . Mage::app()->getStore()->getId() . "<br/>";
echo "Store Name: ".Mage::app()->getStore()->getName(). "<br/>";
echo "Store code: ". Mage::app()->getStore()->getCode()."<br/>";
/** @var ** $website loop */
foreach (Mage::app()->getWebsites() as $website) {
foreach ($website->getGroups() as $group) {
$stores = $group->getStores();
foreach ($stores as $store) {
echo $store->getId() ." ".$store->getName()."<br/>";
}
}
}
/** ** End of script */
Я не смог найти способ вызвать метод delete()
для каждого store_id
, используя:
$model = Mage::getModel('core/store')->load($stores);
$model->delete();
Кто-нибудь может помочь?
2 answers
Используйте StoreID вместо $stores
Как
$model = Mage::getModel('core/store')->load($store->getId());
$model->delete();
Функция загрузки загрузит текущее хранилище в цикл for с помощью $store->getId()
Это просто использование псевдокода, которое должно следовать только за проверкой с подробным кодом в библиотеке mage
Надеюсь, это сработает для вас.