簡體   English   中英

Magento ProductController將categoryId附加到產品

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM