Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /**
  * 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;
 }