<?php
class Pixel_Filterproducts_Model_Observer extends Varien_Event_Observer{
protected $_productAttributeUser;
protected $_currentAdminuser;
protected $_masterAdminRoleId;
public function __construct(){
$this->_productAttributeUser = 'vendorid';
$this->_currentAdminuser = Mage::getSingleton('admin/session')->getUser();
$this->_masterAdminRoleId = 1;
}
/*
** List Products Filter by Particular Users
*/
public function filterProductsByUsers($observer){
if(Mage::getDesign()->getArea() != 'adminhtml' || $this->_currentAdminuser->getRole()->getRoleId() == $this->_masterAdminRoleId)
return;
$event = $observer->getEvent();
$collection = $event->getCollection()->addAttributeToFilter( 'vendorid', array('eq' =>$this->_currentAdminuser->getUserId() ) );
/*$count = count($collection->getData());
if($count > 1)
echo '
<style type="text/css">
.scalable.add{ display:none;}
</style>
';*/
return $this;
}
/*
** Before save the product user id should be update for current product
*/
public function beforeSaveProductUserId($observer){
if($this->_masterAdminRoleId != $this->_currentAdminuser->getRole()->getRoleId()){
$observer->getProduct()->setData($this->_productAttributeUser, $this->_currentAdminuser->getUserId());
}else{
$_orgPro = Mage::getModel('catalog/product')->load($observer->getProduct()->getId());
$observer->getProduct()->setData($this->_productAttributeUser, $this->_currentAdminuser->getUserId());
if($_orgPro->getUser())
$observer->getProduct()->setData($this->_productAttributeUser, $_orgPro->getVendorid());
}
}
}
?>
<?xml version="1.0"?>
<config>
<modules>
<Pixel_Filterproducts>
<version>1.0.0</version>
</Pixel_Filterproducts>
</modules>
<global>
<models>
<pixel_filterproducts>
<class>Pixel_Filterproducts_Model</class>
</pixel_filterproducts>
</models>
<blocks>
<pixel_filterproducts>
<class>Pixel_Filterproducts_Block</class>
</pixel_filterproducts>
<adminhtml>
<rewrite>
<catalog_product_grid>Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
<catalog_product>Pixel_Filterproducts_Block_Adminhtml_Catalog_Product</catalog_product>
</rewrite>
</adminhtml>
</blocks>
<events>
<catalog_product_collection_load_before>
<observers>
<pixel_filterproducts>
<type>singleton</type>
<class>pixel_filterproducts/observer</class>
<method>filterProductsByUsers</method>
</pixel_filterproducts>
</observers>
</catalog_product_collection_load_before>
<catalog_product_save_before>
<observers>
<pixel_filterproducts>
<type>singleton</type>
<class>pixel_filterproducts/observer</class>
<method>beforeSaveProductUserId</method>
</pixel_filterproducts>
</observers>
</catalog_product_save_before>
</events>
</global>
</config>
<?php
class Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Grid extends Mage_Adminhtml_Block_Catalog_Product_Grid{
protected function _prepareColumns()
{
$user_options = array();
$adminUserModel = Mage::getModel('admin/user');
$userCollection = $adminUserModel->getCollection()->load();
foreach ($userCollection as $use_coll)
{
$user_options[$use_coll->getId()] = $use_coll->getFirstname();
}
$user = Mage::getSingleton('admin/session');
$userId = $user->getUser()->getUserId();
if($userId == 1)
{
$this->addColumn('Vendor',
array(
'header'=> Mage::helper('catalog')->__('Vendor'),
'type' => 'options',
'renderer' => 'Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Renderer_Vendor',
'index'=>'vendorid',
'options'=> $user_options,
)
);
}
$ban_options = array();
$banner = Mage::getModel('banner/banner')->getCollection();
foreach ($banner as $ban)
{
$banner_options[$ban->getCode()] = $ban->getName();
}
/* $this->addColumn('banner', array(
'header' => Mage::helper('catalog')->__('Banner'),
'width' => '100',
'renderer' => 'Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Renderer_Banner',
'type' => 'options',
'options' => $banner_options,
'index' => 'banner',
));*/
return parent::_prepareColumns();
}
}
?>
<?php
class Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Renderer_Vendor extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
protected $_productAttributeUser;
public function __construct(){
$this->_productAttributeUser = 'vendorid';
}
public function render(Varien_Object $row){
$row = Mage::getModel('catalog/product')->load($row->getEntityId());
if($_userId = $row->getData($this->_productAttributeUser)){
$_userTmp = Mage::getSingleton('admin/user')->load($_userId);
//print_r($_userTmp->getUserId());
if($_userTmp)
return $_userTmp->getFirstname().' '.$_userTmp->getLastname();
}
return;
}
}
?>
class Pixel_Filterproducts_Model_Observer extends Varien_Event_Observer{
protected $_productAttributeUser;
protected $_currentAdminuser;
protected $_masterAdminRoleId;
public function __construct(){
$this->_productAttributeUser = 'vendorid';
$this->_currentAdminuser = Mage::getSingleton('admin/session')->getUser();
$this->_masterAdminRoleId = 1;
}
/*
** List Products Filter by Particular Users
*/
public function filterProductsByUsers($observer){
if(Mage::getDesign()->getArea() != 'adminhtml' || $this->_currentAdminuser->getRole()->getRoleId() == $this->_masterAdminRoleId)
return;
$event = $observer->getEvent();
$collection = $event->getCollection()->addAttributeToFilter( 'vendorid', array('eq' =>$this->_currentAdminuser->getUserId() ) );
/*$count = count($collection->getData());
if($count > 1)
echo '
<style type="text/css">
.scalable.add{ display:none;}
</style>
';*/
return $this;
}
/*
** Before save the product user id should be update for current product
*/
public function beforeSaveProductUserId($observer){
if($this->_masterAdminRoleId != $this->_currentAdminuser->getRole()->getRoleId()){
$observer->getProduct()->setData($this->_productAttributeUser, $this->_currentAdminuser->getUserId());
}else{
$_orgPro = Mage::getModel('catalog/product')->load($observer->getProduct()->getId());
$observer->getProduct()->setData($this->_productAttributeUser, $this->_currentAdminuser->getUserId());
if($_orgPro->getUser())
$observer->getProduct()->setData($this->_productAttributeUser, $_orgPro->getVendorid());
}
}
}
?>
<?xml version="1.0"?>
<config>
<modules>
<Pixel_Filterproducts>
<version>1.0.0</version>
</Pixel_Filterproducts>
</modules>
<global>
<models>
<pixel_filterproducts>
<class>Pixel_Filterproducts_Model</class>
</pixel_filterproducts>
</models>
<blocks>
<pixel_filterproducts>
<class>Pixel_Filterproducts_Block</class>
</pixel_filterproducts>
<adminhtml>
<rewrite>
<catalog_product_grid>Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
<catalog_product>Pixel_Filterproducts_Block_Adminhtml_Catalog_Product</catalog_product>
</rewrite>
</adminhtml>
</blocks>
<events>
<catalog_product_collection_load_before>
<observers>
<pixel_filterproducts>
<type>singleton</type>
<class>pixel_filterproducts/observer</class>
<method>filterProductsByUsers</method>
</pixel_filterproducts>
</observers>
</catalog_product_collection_load_before>
<catalog_product_save_before>
<observers>
<pixel_filterproducts>
<type>singleton</type>
<class>pixel_filterproducts/observer</class>
<method>beforeSaveProductUserId</method>
</pixel_filterproducts>
</observers>
</catalog_product_save_before>
</events>
</global>
</config>
<?php
class Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Grid extends Mage_Adminhtml_Block_Catalog_Product_Grid{
protected function _prepareColumns()
{
$user_options = array();
$adminUserModel = Mage::getModel('admin/user');
$userCollection = $adminUserModel->getCollection()->load();
foreach ($userCollection as $use_coll)
{
$user_options[$use_coll->getId()] = $use_coll->getFirstname();
}
$user = Mage::getSingleton('admin/session');
$userId = $user->getUser()->getUserId();
if($userId == 1)
{
$this->addColumn('Vendor',
array(
'header'=> Mage::helper('catalog')->__('Vendor'),
'type' => 'options',
'renderer' => 'Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Renderer_Vendor',
'index'=>'vendorid',
'options'=> $user_options,
)
);
}
$ban_options = array();
$banner = Mage::getModel('banner/banner')->getCollection();
foreach ($banner as $ban)
{
$banner_options[$ban->getCode()] = $ban->getName();
}
/* $this->addColumn('banner', array(
'header' => Mage::helper('catalog')->__('Banner'),
'width' => '100',
'renderer' => 'Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Renderer_Banner',
'type' => 'options',
'options' => $banner_options,
'index' => 'banner',
));*/
return parent::_prepareColumns();
}
}
?>
<?php
class Pixel_Filterproducts_Block_Adminhtml_Catalog_Product_Renderer_Vendor extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
protected $_productAttributeUser;
public function __construct(){
$this->_productAttributeUser = 'vendorid';
}
public function render(Varien_Object $row){
$row = Mage::getModel('catalog/product')->load($row->getEntityId());
if($_userId = $row->getData($this->_productAttributeUser)){
$_userTmp = Mage::getSingleton('admin/user')->load($_userId);
//print_r($_userTmp->getUserId());
if($_userTmp)
return $_userTmp->getFirstname().' '.$_userTmp->getLastname();
}
return;
}
}
?>