protected function _prepareCollection() { Mage::getSingleton('mailchimp/webHooks')->updateController(); $collection = Mage::getSingleton('mailchimp/mysql4_helper_collection'); $lists = Mage::getSingleton('mailchimp/source_lists')->toOptionArray(); if (is_array($lists) && count($lists)) { foreach ($lists as $list) { if ($list['value']) { $id = $list['value']; $return = Mage::getSingleton('mailchimp/webHooks')->mainWebHooksAction($id); $item = new Varien_Object(); $item->setListId($id)->setName($list['label'])->setSubscribe((bool) $return['actions']['subscribe'])->setUnsubscribe((bool) $return['actions']['unsubscribe'])->setProfile((bool) $return['actions']['profile'])->setCleaned((bool) $return['actions']['cleaned'])->setUpemail((bool) $return['actions']['upemail'])->setUser((bool) $return['sources']['user'])->setAdmin((bool) $return['sources']['admin'])->setApi((bool) $return['sources']['api']); $collection->addItem($item); } } } $this->setCollection($collection); if ($this->getCollection()) { $this->_preparePage(); $columnId = $this->getParam($this->getVarNameSort(), $this->_defaultSort); $dir = $this->getParam($this->getVarNameDir(), $this->_defaultDir); $filter = $this->getParam($this->getVarNameFilter(), null); if (is_null($filter)) { $filter = $this->_defaultFilter; } if (is_string($filter)) { $data = $this->helper('adminhtml')->prepareFilterString($filter); $this->_setFilterValues($data); } else { if ($filter && is_array($filter)) { $this->_setFilterValues($filter); } else { if (0 !== sizeof($this->_defaultFilter)) { $this->_setFilterValues($this->_defaultFilter); } } } if (isset($this->_columns[$columnId]) && $this->_columns[$columnId]->getIndex()) { $dir = strtolower($dir) == 'desc' ? 'desc' : 'asc'; $this->_columns[$columnId]->setDir($dir); $column = $this->_columns[$columnId]->getFilterIndex() ? $this->_columns[$columnId]->getFilterIndex() : $this->_columns[$columnId]->getIndex(); $this->setCollection($this->getCollection()->sortCollection($column, $dir)); } $this->getCollection()->load(); $this->_afterLoadCollection(); } return $this; }