[英]Magento ProductController append categoryId to products
我要添加一個群眾動作來添加類別。 在大多數情況下,我只剩下一個要弄清楚的功能。
CLR \\ Categorymassaction \\ \\控制器Adminhtml \\目錄\\ ProductController.php
class Clr_Categorymassaction_Adminhtml_Catalog_ProductController extends Mage_Adminhtml_Controller_Action
{
public function massCategoryAction()
{
$productIds = $this->getRequest()->getParam('product');
$cat = $this->getRequest()->getParam('Category');
if (!is_array($productIds)) {
$this->_getSession()->addError($this->__('Please select product(s).'));
$this->_redirect('*/*/index');
}
else {
$cat = $category['label']->getCategoryId();
foreach($productIds as $product) {
//Process $cat into categoryId append categoryId to $productId
$cat->setPostedProducts($product);
}
//Save product
$cat->save();
}
}
}
CLR \\ Categorymassaction \\型號\\觀察
class Clr_Categorymassaction_Model_Observer {
public function addCategoryMassAction(Varien_Event_Observer $observer)
{
$block = $observer ->getBlock();
if ($block instanceof Mage_Adminhtml_Block_Catalog_Product_Grid) {
$block->getMassactionBlock()->addItem('Clr_Categorymassaction', array(
'label' => Mage::helper('catalog')->__('Add to Category'),
'url' => $block->getUrl('*/*/massCategory', array('_current' => true)),
'additional'=> array(
'visibility' => array(
'name' =>'Category',
'class' =>'required-entry',
'label' =>Mage::helper('catalog')->__('Categories'),
'type' => 'select',
'values' => Mage::getModel('Categorymassaction/system_config_source_category')->toOptionArray(),
'renderer' => 'Categorymassaction/catalog_product_grid_render_category',
)
)
));
};
}
}
最后一件事
class Clr_Categorymassaction_Model_System_Config_Source_Category
{
public function toOptionArray($addEmpty = true)
{
$options = array();
foreach ($this->load_tree() as $category) {
$options[$category['value']] = $category['label'];
}
return $options;
}
我在這里最麻煩的是因為我正在重構Flagbit_changeattributeset和Vuleticd_AdminGridCategoryFilter。 我知道我需要做的事情(至少我想我要做)我只是不知道如何完成此工作。 感謝您的閱讀和閱讀。
更新:來自Vuleticd_AdminGridCategoryFilter的觀察者擁有此附加代碼
'filter_condition_callback' => array($this, 'filterCallback'),
)
)
));
};
}
public function filterCallback($collection, $column)
{
$value = $column->getFilter()->getValue();
$_category = Mage::getModel('catalog/category')->load($value);
$collection->addCategoryFilter($_category);
return $collection;
}
這用於將過濾器應用於網格。 我想要做的是,而不是使用下拉列表來過濾列字段; 使用下拉菜單觸發ProductController將選定的商品傳遞給新的categoryid。
https://magento.stackexchange.com/questions/67234/productcontroller-for-mass-action在magento的stackexchange上問了這個問題,我想在此張貼鏈接以供后代參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.