您的位置:首页 > 其它

Magento后台Gird列表增持Action操作。

2015-10-22 14:04 435 查看
以Newsletter Subscribers为例



第一步,模型文件里添加方法

\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');
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: