Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magento.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magento.com for more information.
- *
- * @category Mage
- * @package Mage_Adminhtml
- * @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
- */
- /**
- * Adminhtml customer grid block
- *
- * @category Mage
- * @package Mage_Adminhtml
- * @author Magento Core Team <core@magentocommerce.com>
- */
- class Mage_Adminhtml_Block_Catalog_Product_Grid extends Mage_Adminhtml_Block_Widget_Grid
- {
- public function __construct()
- {
- parent::__construct();
- $this->setId('productGrid');
- $this->setDefaultSort('entity_id');
- $this->setDefaultDir('DESC');
- $this->setSaveParametersInSession(true);
- $this->setUseAjax(true);
- $this->setVarNameFilter('product_filter');
- }
- protected function _getStore()
- {
- $storeId = (int) $this->getRequest()->getParam('store', 0);
- return Mage::app()->getStore($storeId);
- }
- protected function _prepareCollection()
- {
- $store = $this->_getStore();
- $collection = Mage::getModel('catalog/product')->getCollection()
- ->addAttributeToSelect('sku')
- ->addAttributeToSelect('name')
- ->addAttributeToSelect('attribute_set_id')
- ->addAttributeToSelect('type_id');
- if (Mage::helper('catalog')->isModuleEnabled('Mage_CatalogInventory')) {
- $collection->joinField('qty',
- 'cataloginventory/stock_item',
- 'qty',
- 'product_id=entity_id',
- '{{table}}.stock_id=1',
- 'left');
- }
- if ($store->getId()) {
- //$collection->setStoreId($store->getId());
- $adminStore = Mage_Core_Model_App::ADMIN_STORE_ID;
- $collection->addStoreFilter($store);
- $collection->joinAttribute(
- 'name',
- 'catalog_product/name',
- 'entity_id',
- null,
- 'inner',
- $adminStore
- );
- $collection->joinAttribute(
- 'custom_name',
- 'catalog_product/name',
- 'entity_id',
- null,
- 'inner',
- $store->getId()
- );
- $collection->joinAttribute(
- 'status',
- 'catalog_product/status',
- 'entity_id',
- null,
- 'inner',
- $store->getId()
- );
- $collection->joinAttribute(
- 'visibility',
- 'catalog_product/visibility',
- 'entity_id',
- null,
- 'inner',
- $store->getId()
- );
- $collection->joinAttribute(
- 'price',
- 'catalog_product/price',
- 'entity_id',
- null,
- 'left',
- $store->getId()
- );
- }
- else {
- $collection->addAttributeToSelect('price');
- $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
- $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');
- }
- $this->setCollection($collection);
- parent::_prepareCollection();
- $this->getCollection()->addWebsiteNamesToResult();
- return $this;
- }
- protected function _addColumnFilterToCollection($column)
- {
- if ($this->getCollection()) {
- if ($column->getId() == 'websites') {
- $this->getCollection()->joinField('websites',
- 'catalog/product_website',
- 'website_id',
- 'product_id=entity_id',
- null,
- 'left');
- }
- }
- return parent::_addColumnFilterToCollection($column);
- }
- protected function _prepareColumns()
- {
- $this->addColumn('entity_id',
- array(
- 'header'=> Mage::helper('catalog')->__('ID'),
- 'width' => '50px',
- 'type' => 'number',
- 'index' => 'entity_id',
- ));
- $this->addColumn('name',
- array(
- 'header'=> Mage::helper('catalog')->__('Name'),
- 'index' => 'name',
- ));
- $store = $this->_getStore();
- if ($store->getId()) {
- $this->addColumn('custom_name',
- array(
- 'header'=> Mage::helper('catalog')->__('Name in %s', $store->getName()),
- 'index' => 'custom_name',
- ));
- }
- $this->addColumn('type',
- array(
- 'header'=> Mage::helper('catalog')->__('Type'),
- 'width' => '60px',
- 'index' => 'type_id',
- 'type' => 'options',
- 'options' => Mage::getSingleton('catalog/product_type')->getOptionArray(),
- ));
- $sets = Mage::getResourceModel('eav/entity_attribute_set_collection')
- ->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId())
- ->load()
- ->toOptionHash();
- $this->addColumn('set_name',
- array(
- 'header'=> Mage::helper('catalog')->__('Attrib. Set Name'),
- 'width' => '100px',
- 'index' => 'attribute_set_id',
- 'type' => 'options',
- 'options' => $sets,
- ));
- $this->addColumn('sku',
- array(
- 'header'=> Mage::helper('catalog')->__('SKU'),
- 'width' => '80px',
- 'index' => 'sku',
- ));
- $this->addColumn('number',
- array(
- 'header'=> Mage::helper('catalog')->__('Поръчка №'),
- 'width' => '50px',
- 'index' => 'entity_id',
- 'renderer' => 'Mage_Adminhtml_Block_Catalog_Product_Renderer',
- ));
- $store = $this->_getStore();
- $this->addColumn('price',
- array(
- 'header'=> Mage::helper('catalog')->__('Price'),
- 'type' => 'price',
- 'currency_code' => $store->getBaseCurrency()->getCode(),
- 'index' => 'price',
- ));
- if (Mage::helper('catalog')->isModuleEnabled('Mage_CatalogInventory')) {
- $this->addColumn('qty',
- array(
- 'header'=> Mage::helper('catalog')->__('Qty'),
- 'width' => '100px',
- 'type' => 'number',
- 'index' => 'qty',
- ));
- }
- $this->addColumn('visibility',
- array(
- 'header'=> Mage::helper('catalog')->__('Visibility'),
- 'width' => '70px',
- 'index' => 'visibility',
- 'type' => 'options',
- 'options' => Mage::getModel('catalog/product_visibility')->getOptionArray(),
- ));
- $this->addColumn('status',
- array(
- 'header'=> Mage::helper('catalog')->__('Status'),
- 'width' => '70px',
- 'index' => 'status',
- 'type' => 'options',
- 'options' => Mage::getSingleton('catalog/product_status')->getOptionArray(),
- ));
- if (!Mage::app()->isSingleStoreMode()) {
- $this->addColumn('websites',
- array(
- 'header'=> Mage::helper('catalog')->__('Websites'),
- 'width' => '100px',
- 'sortable' => false,
- 'index' => 'websites',
- 'type' => 'options',
- 'options' => Mage::getModel('core/website')->getCollection()->toOptionHash(),
- ));
- }
- $this->addColumn('action',
- array(
- 'header' => Mage::helper('catalog')->__('Action'),
- 'width' => '50px',
- 'type' => 'action',
- 'getter' => 'getId',
- 'actions' => array(
- array(
- 'caption' => Mage::helper('catalog')->__('Edit'),
- 'url' => array(
- 'base'=>'*/*/edit',
- 'params'=>array('store'=>$this->getRequest()->getParam('store'))
- ),
- 'field' => 'id'
- )
- ),
- 'filter' => false,
- 'sortable' => false,
- 'index' => 'stores',
- ));
- if (Mage::helper('catalog')->isModuleEnabled('Mage_Rss')) {
- $this->addRssList('rss/catalog/notifystock', Mage::helper('catalog')->__('Notify Low Stock RSS'));
- }
- return parent::_prepareColumns();
- }
- protected function _prepareMassaction()
- {
- $this->setMassactionIdField('entity_id');
- $this->getMassactionBlock()->setFormFieldName('product');
- $this->getMassactionBlock()->addItem('delete', array(
- 'label'=> Mage::helper('catalog')->__('Delete'),
- 'url' => $this->getUrl('*/*/massDelete'),
- 'confirm' => Mage::helper('catalog')->__('Are you sure?')
- ));
- $statuses = Mage::getSingleton('catalog/product_status')->getOptionArray();
- array_unshift($statuses, array('label'=>'', 'value'=>''));
- $this->getMassactionBlock()->addItem('status', array(
- 'label'=> Mage::helper('catalog')->__('Change status'),
- 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
- 'additional' => array(
- 'visibility' => array(
- 'name' => 'status',
- 'type' => 'select',
- 'class' => 'required-entry',
- 'label' => Mage::helper('catalog')->__('Status'),
- 'values' => $statuses
- )
- )
- ));
- if (Mage::getSingleton('admin/session')->isAllowed('catalog/update_attributes')){
- $this->getMassactionBlock()->addItem('attributes', array(
- 'label' => Mage::helper('catalog')->__('Update Attributes'),
- 'url' => $this->getUrl('*/catalog_product_action_attribute/edit', array('_current'=>true))
- ));
- }
- Mage::dispatchEvent('adminhtml_catalog_product_grid_prepare_massaction', array('block' => $this));
- return $this;
- }
- public function getGridUrl()
- {
- return $this->getUrl('*/*/grid', array('_current'=>true));
- }
- public function getRowUrl($row)
- {
- return $this->getUrl('*/*/edit', array(
- 'store'=>$this->getRequest()->getParam('store'),
- 'id'=>$row->getId())
- );
- }
- }
- <?PHP
- class Mage_Adminhtml_Block_Catalog_Product_Renderer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
- {
- public function render(Varien_Object $row)
- {
- $productId = $row->getData($this->getColumn()->getIndex());
- $orders = array();
- $collection = Mage::getResourceModel('sales/order_item_collection')
- ->addAttributeToFilter('product_id', array('eq' => $productId))
- ->load();
- foreach($collection as $orderItem) {
- $orders[$orderItem->getOrder()->getIncrementId()] = $orderItem->getOrder();
- }
- $first_key = key($orders);
- return $first_key;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement