blog sur le développement web, jquery,css3, Magento, Symphony, php et bien d'autres choses

logo magento feed grid with custom data

Si vous possédez un tableau de données persos ne provenant pas d’un model Magento, voici un exemple pour créer une collection à partir de vos données et ainsi les afficher dans le grid.

class Namespace_Result_Grid 
extends Mage_Adminhtml_Block_Widget_Grid
{
    protected $_collection;
    /**
     * @see Mage_Adminhtml_Block_Widget_Grid::__construct()
     */
    public function __construct()
    {
        parent::__construct();
        $this->setId('rangeResultGrid');
        $this->setUseAjax(true);
        $this->setDefaultSort('code');
        $this->setDefaultDir('ASC');
        $this->setPagerVisibility(false);
        $this->setFilterVisibility(false);
    }

    /**
     * @see Mage_Adminhtml_Block_Widget_Grid::_prepareCollection()
     */
    protected function _prepareCollection()
    {
        $this->_collection = new Varien_Data_Collection();
        $this->_loadCollection();
        $this->setCollection($this->_collection);
        return parent::_prepareCollection();
    }

    protected function _loadCollection()
    {
        $object = new Varien_Object();
        $object->setData('checked','1');
        $object->setData('columna','a');
        $object->setData('columnb','b');
        $object->setData('columnc','c');
        $this->_collection->addItem($object);
    }

    protected function _prepareColumns()
    {
        $this->addColumn('in_selection', array(
                'header_css_class' => 'a-center',
                'type'      => 'checkbox',
                'name'      => 'in_selection',
                'field_name'=> 'in_selection[]',
                'value'     => '1',
                'align'     => 'center',
                'index'     => 'checked',
                'width'     =>  '20px',
        ));

        $this->addColumn(
            'fielda',
            array(
                'header' => Mage::helper('sp_grm')->__('Column A'),
                'align'     =>  'left',
                'width'     =>  '50px',
                'index'     =>  'columna',
            )
        );

        $this->addColumn(
            'fieldb',
            array(
                'header'=> Mage::helper('sp_grm')->__('Column B'),
                'align' =>  'left',
                'width' =>  '50px',
                'index' =>  'columnb',
            )
        );

        $this->addColumn(
            'fieldc',
            array(
                'header' =>  Mage::helper('sp_grm')->__('Column C'),
                'align'  =>  'left',
                'width'  =>  '50px',
                'index'  =>  'columnc',
            )
        );

        return parent::_prepareColumns();
    }
}

Commentaires sur: "Magento : Remplir un grid avec des données qui ne proviennent pas d’un model / Grid with custom Data Collection" (2)

  1. Pierro a dit:

    Bonjour merci pour cet article, mais de mon coté la grille reste vide.
    j’ai copié le code source à l’identique.
    Magento 1.3…
    une idée?

    • il faut bien évidement adapter le code source à votre situation. qu’elles sont les erreurs éventuelles qui apparaissent?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s