public function testFactory() { $this->object->getPluginLoader()->addPrefixPath('Test', 'Test'); $class = $this->getMock('System_Controller_Action_Helper_GridFilter_Abstract', array(), array(), 'Test_Test'); $object = $this->object->factory(array('type' => 'Test')); self::assertType('Test_Test', $object); }
/** * @see library/System/Controller/Action/Helper/GridFilter/System_Controller_Action_Helper_GridFilter_Abstract#filter($select) */ public function filter(Zend_Db_Select $select) { if ($this->_getComparison() == '=') { $select->where('DATE(' . $this->_field . ') ' . $this->_getComparison() . ' DATE(?) ', $this->_getValue()); } else { parent::filter($select); } }
/** * @see library/System/Controller/Action/Helper/GridFilter/System_Controller_Action_Helper_GridFilter_Abstract#_getValue() */ protected function _getValue() { $values = array(); foreach (explode(',', parent::_getValue()) as $value) { $values[] = trim($value); } return $values; }
/** * @see library/System/Controller/Action/Helper/GridFilter/System_Controller_Action_Helper_GridFilter_Abstract#_getComparison() */ protected function _getComparison() { if (isset($this->_data['comparison'])) { $comparison = $this->_data['comparison']; } else { $comparison = ''; } switch ($comparison) { case 'lt': return '<'; break; case 'gt': return '>'; break; default: return parent::_getComparison(); } }
/** * Get basic select (select {$fields} from {$table}) and add filters, order and limit info from request * @param Zend_Db_Table_Abstract $table * @param string|array $fields array of fields or "*" Use as {@see Zend_Db_Select::from()} second params * @return Zend_Db_Select */ public function getSelect(Zend_Db_Table_Abstract $table, $fields = "*") { //create basic selects $select = $table->getAdapter()->select()->from($table->info(Zend_Db_Table_Abstract::NAME), $fields); $cols = $table->info(Zend_Db_Table::COLS); //add filters support foreach ((array) $this->getRequest()->getParam('filter') as $value) { $field = $value['field']; if (in_array($field, $cols)) { $filter = System_Controller_Action_Helper_GridFilter_Abstract::factory($value['data']); $filter->setField($field); $filter->filter($select); } } //add sort $sortCol = $this->getRequest()->getParam('sort'); if (in_array($sortCol, $cols)) { $select->order($sortCol . ' ' . $this->_getDirState('dir')); } //set limit $select->limit((int) $this->getRequest()->getParam('limit', 25), (int) $this->getRequest()->getParam('start')); return $select; }
/** * @see library/System/Controller/Action/Helper/GridFilter/System_Controller_Action_Helper_GridFilter_Abstract#_getValue() */ protected function _getValue() { return '%' . parent::_getValue() . '%'; }
/** * Set plugin loader * * @param Zend_Loader_PluginLoader_Interface $pluginLoader */ public static function setPluginLoader(Zend_Loader_PluginLoader_Interface $pluginLoader = null) { self::$pluginLoader = $pluginLoader; }