Если вы посмотрите на источник для контроллера администратора этого модуля, вы увидите код, который они используют для массового удаления
#File: app/code/local/Mage/Imaclean/controllers/Adminhtml/ImacleanController.php
public function massDeleteAction() {
$imacleanIds = $this->getRequest()->getParam('imaclean');
if(!is_array($imacleanIds)) {
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
} else {
try {
$model = Mage::getModel('imaclean/imaclean');
foreach ($imacleanIds as $imacleanId) {
$model->load($imacleanId);
unlink('media/catalog/product'. $model->getFilename());
$model->setId($imacleanId)->delete();
}
Mage::getSingleton('adminhtml/session')->addSuccess(
Mage::helper('adminhtml')->__(
'Total of %d record(s) were successfully deleted', count($imacleanIds)
)
);
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
$this->_redirect('*/*/index');
}
Итак, это действие контроллера принимает число "imaclean /imaclean "идентификаторы модели, использует эти идентификаторы для выполнения удаления.Итак, код ключа в этом действии:
$imacleanIds = $this->getRequest()->getParam('imaclean');
$model = Mage::getModel('imaclean/imaclean');
foreach ($imacleanIds as $imacleanId) {
$model->load($imacleanId);
unlink('media/catalog/product'. $model->getFilename());
$model->setId($imacleanId)->delete();
}
Итак, вы можете повторить приведенный выше код в автономной версии с чем-то вроде
//itterates through all 'imaclean/imaclean' models in the database
$models = Mage::getModel('imaclean/imaclean')->getCollection();
foreach ($models as $model) {
unlink('media/catalog/product'. $model->getFilename());
$model->setId($model->getId())->delete();
}
Наконец, это выглядит какМодели imaclean / imaclean используются для отслеживания того, какие изображения больше не нужны.Похоже, что модуль создает их (т.е. запускает проверку неиспользуемых изображений) в действии newAction с методом compareList
помощника по умолчанию.
public function newAction(){
Mage::helper('imaclean')->compareList();
$this->_redirect('*/*/');
}
Итак, мы можем добавить это к началу нашего скрипта, а также к фактической инициализации Magento, которая должна дать нам то, что нам нужно.
#File: cleanup.php
require_once "app/Mage.php";
$app = Mage::app("default");
Mage::helper('imaclean')->compareList();
$models = Mage::getModel('imaclean/imaclean')->getCollection();
foreach ($models as $model) {
unlink('media/catalog/product'. $model->getFilename());
$model->setId($model->getId())->delete();
}
Этодолжен хотя бы начать.Удачи!