Magento后台Gird列表增持Action操作。
2015-10-22 14:04
435 查看
以Newsletter Subscribers为例
第一步,模型文件里添加方法
\app\code\core\Mage\Newsletter\Model\Subscriber.php
第二步:
Grid添加列
\app\code\core\Mage\Adminhtml\Block\Newsletter\Subscriber\Grid.php
大约108行
\app\code\core\Mage\Adminhtml\controllers\Newsletter\SubscriberController.php
第一步,模型文件里添加方法
\app\code\core\Mage\Newsletter\Model\Subscriber.php
const STATUS_SUBSCRIBED = 1; const STATUS_NOT_ACTIVE = 2; const STATUS_UNSUBSCRIBED = 3; const STATUS_UNCONFIRMED = 4; /*2015年10月17日新增 FDS 5 PETS 6 SALON 7 DT 8 SPORTS 9 */ const STATUS_FDS = 5; const STATUS_PETS = 6; const STATUS_SALON = 7; const STATUS_DT = 8; const STATUS_SPORTS = 9;
/** * @date 2015年10月22日 * 把所有选择项归到FDS一组(设置SubscriberStatus为STATUS_FDS) */ public function fds() { if ($this->hasCheckCode() && $this->getCode() != $this->getCheckCode()) { Mage::throwException(Mage::helper('newsletter')->__('Invalid subscription confirmation code.')); } $this->setSubscriberStatus(self::STATUS_FDS) ->save(); return $this; } /** * @date 2015年10月22日 * 把所有选择项归到STATUS_PETS一组(设置SubscriberStatus为 STATUS_PETS) */ public function pets() { if ($this->hasCheckCode() && $this->getCode() != $this->getCheckCode()) { Mage::throwException(Mage::helper('newsletter')->__('Invalid subscription confirmation code.')); } $this->setSubscriberStatus(self::STATUS_PETS) ->save(); return $this; } /** * @date 2015年10月22日 * 把所有选择项归到SALON一组(设置SubscriberStatus为STATUS_SALON) */ public function salon() { if ($this->hasCheckCode() && $this->getCode() != $this->getCheckCode()) { Mage::throwException(Mage::helper('newsletter')->__('Invalid subscription confirmation code.')); } $this->setSubscriberStatus(self::STATUS_SALON) ->save(); return $this; } /** * @date 2015年10月22日 * 把所有选择项归到DT一组(设置SubscriberStatus为 STATUS_DT) */ public function dt() { if ($this->hasCheckCode() && $this->getCode() != $this->getCheckCode()) { Mage::throwException(Mage::helper('newsletter')->__('Invalid subscription confirmation code.')); } $this->setSubscriberStatus(self::STATUS_DT) ->save(); return $this; } /** * @date 2015年10月22日 * 把所有选择项归到SPORTS一组(设置SubscriberStatus为 STATUS_SPORTS) */ public function sports() { if ($this->hasCheckCode() && $this->getCode() != $this->getCheckCode()) { Mage::throwException(Mage::helper('newsletter')->__('Invalid subscription confirmation code.')); } $this->setSubscriberStatus(self::STATUS_SPORTS) ->save(); return $this; }
第二步:
Grid添加列
\app\code\core\Mage\Adminhtml\Block\Newsletter\Subscriber\Grid.php
大约108行
$this->addColumn('status', array( 'header' => Mage::helper('newsletter')->__('Status'), 'index' => 'subscriber_status', 'type' => 'options', 'options' => array( Mage_Newsletter_Model_Subscriber::STATUS_FDS => Mage::helper('newsletter')->__('FDS'), Mage_Newsletter_Model_Subscriber::STATUS_PETS => Mage::helper('newsletter')->__('PETS'), Mage_Newsletter_Model_Subscriber::STATUS_SALON => Mage::helper('newsletter')->__('SALON'), Mage_Newsletter_Model_Subscriber::STATUS_DT => Mage::helper('newsletter')->__('DT'), Mage_Newsletter_Model_Subscriber::STATUS_SPORTS => Mage::helper('newsletter')->__('SPORTS'), Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE => Mage::helper('newsletter')->__('Not Activated'), Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED => Mage::helper('newsletter')->__('Subscribed'), Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED => Mage::helper('newsletter')->__('Unsubscribed'), Mage_Newsletter_Model_Subscriber::STATUS_UNCONFIRMED => Mage::helper('newsletter')->__('Unconfirmed'), ) ));还要添加预处理action
protected function _prepareMassaction() { $this->setMassactionIdField('subscriber_id'); $this->getMassactionBlock()->setFormFieldName('subscriber'); //2015年10月22日 $this->getMassactionBlock()->addItem('FDS', array( 'label' => Mage::helper('newsletter')->__('FDS'), 'url' => $this->getUrl('*/*/massFDS') )); //2015年10月22日 $this->getMassactionBlock()->addItem('PETS', array( 'label' => Mage::helper('newsletter')->__('PETS'), 'url' => $this->getUrl('*/*/massPETS') )); //2015年10月22日 $this->getMassactionBlock()->addItem('SALON', array( 'label' => Mage::helper('newsletter')->__('SALON'), 'url' => $this->getUrl('*/*/massSALON') )); //2015年10月22日 $this->getMassactionBlock()->addItem('DT', array( 'label' => Mage::helper('newsletter')->__('DT'), 'url' => $this->getUrl('*/*/massDT') )); //2015年10月22日 $this->getMassactionBlock()->addItem('SPORTS', array( 'label' => Mage::helper('newsletter')->__('SPORTS'), 'url' => $this->getUrl('*/*/massSPORTS') )); $this->getMassactionBlock()->addItem('unsubscribe', array( 'label' => Mage::helper('newsletter')->__('Unsubscribe'), 'url' => $this->getUrl('*/*/massUnsubscribe') )); $this->getMassactionBlock()->addItem('delete', array( 'label' => Mage::helper('newsletter')->__('Delete'), 'url' => $this->getUrl('*/*/massDelete') )); return $this; }第三步:控制器中
\app\code\core\Mage\Adminhtml\controllers\Newsletter\SubscriberController.php
/** * @date 2015年10月22日 * 归到FDS一组 */ public function massFDSAction() { $subscribersIds = $this->getRequest()->getParam('subscriber'); if (!is_array($subscribersIds)) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)')); } else { try { foreach ($subscribersIds as $subscriberId) { $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId); $subscriber->fds(); } Mage::getSingleton('adminhtml/session')->addSuccess( Mage::helper('adminhtml')->__('Total of %d record(s) were updated', count($subscribersIds)) ); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } } $this->_redirect('*/*/index'); } /** * @date 2015年10月22日 * 归到PETS一组 */ public function massPETSAction() { $subscribersIds = $this->getRequest()->getParam('subscriber'); if (!is_array($subscribersIds)) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)')); } else { try { foreach ($subscribersIds as $subscriberId) { $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId); $subscriber->pets(); } Mage::getSingleton('adminhtml/session')->addSuccess( Mage::helper('adminhtml')->__('Total of %d record(s) were updated', count($subscribersIds)) ); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } } $this->_redirect('*/*/index'); } /** * @date 2015年10月22日 * 归到SALON一组 */ public function massSALONAction() { $subscribersIds = $this->getRequest()->getParam('subscriber'); if (!is_array($subscribersIds)) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)')); } else { try { foreach ($subscribersIds as $subscriberId) { $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId); $subscriber->salon(); } Mage::getSingleton('adminhtml/session')->addSuccess( Mage::helper('adminhtml')->__('Total of %d record(s) were updated', count($subscribersIds)) ); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } } $this->_redirect('*/*/index'); } /** * @date 2015年10月22日 * 归到DT一组 */ public function massDTAction() { $subscribersIds = $this->getRequest()->getParam('subscriber'); if (!is_array($subscribersIds)) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)')); } else { try { foreach ($subscribersIds as $subscriberId) { $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId); $subscriber->dt(); } Mage::getSingleton('adminhtml/session')->addSuccess( Mage::helper('adminhtml')->__('Total of %d record(s) were updated', count($subscribersIds)) ); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } } $this->_redirect('*/*/index'); } /** * @date 2015年10月22日 * 归到FDS一组 */ public function massSPORTSAction() { $subscribersIds = $this->getRequest()->getParam('subscriber'); if (!is_array($subscribersIds)) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)')); } else { try { foreach ($subscribersIds as $subscriberId) { $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId); $subscriber->sports(); } Mage::getSingleton('adminhtml/session')->addSuccess( Mage::helper('adminhtml')->__('Total of %d record(s) were updated', count($subscribersIds)) ); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } } $this->_redirect('*/*/index'); } public function massUnsubscribeAction() { $subscribersIds = $this->getRequest()->getParam('subscriber'); if (!is_array($subscribersIds)) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)')); } else { try { foreach ($subscribersIds as $subscriberId) { $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId); $subscriber->unsubscribe(); } Mage::getSingleton('adminhtml/session')->addSuccess( Mage::helper('adminhtml')->__('Total of %d record(s) were updated', count($subscribersIds)) ); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } } $this->_redirect('*/*/index'); }
相关文章推荐
- 将一个目录下所有指定文件里面的特定字符串替换
- edittext输入类型inputtype
- AlertView的基本用法
- Android 工作问题记录
- 如何给第三方人员提供oracle接口
- Windows的OpenFileDialog双击文件选择时,系统crash
- android xml操作
- sql developer如何连接mysql数据库
- 实验总结
- CIR,CBS,EBS,PIR,PBS
- Maven生成javadoc
- js事件(onmouseover和onmouseout)
- Android设置透明、半透明等效果
- 两个有序数组,求第K小数
- KMP算法的C语言实现
- 关于UIView的autoresizingMask属性的研究
- linux根文件系统树制作
- 文件操作
- 如何给第三方人员提供oracle接口
- (138)子数组之和