Ala*_*orm 10
如果您查看该模块的管理控制器的源代码,您可以看到他们用于执行批量删除的代码
#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');
}
Run Code Online (Sandbox Code Playgroud)
因此,此控制器操作接受许多"imaclean/imaclean"模型ID,使用这些ID执行删除.所以,该行动的关键代码是
$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();
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用类似的东西在独立版本中复制上述代码
//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();
}
Run Code Online (Sandbox Code Playgroud)
最后,看起来像"imaclean/imaclean"模型用于跟踪不再需要哪些图像.看起来模块使用compareList默认帮助器的方法在newAction中创建这些(即运行对未使用图像的检查).
public function newAction(){
Mage::helper('imaclean')->compareList();
$this->_redirect('*/*/');
}
Run Code Online (Sandbox Code Playgroud)
因此,我们可以将它添加到我们的脚本的开头,以及事实上的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();
}
Run Code Online (Sandbox Code Playgroud)
这至少应该让你开始.祝好运!
| 归档时间: |
|
| 查看次数: |
12945 次 |
| 最近记录: |