Example #1
0
 /**
  * Allow adapter to handle a change of state of a column actions.
  *
  * @param \DataGrid\EventManager\AdapterEvent $e
  * @return void
  */
 public function onAction(AdapterEvent $e)
 {
     if ($e->getAdapter() !== $this) {
         return;
     }
     $columnName = $e->getColumn()->getName();
     switch ($e->getAction()) {
         case 'order':
             $adaptable = $e->getAdapter()->getAdaptable();
             $orderColumn = array();
             foreach ($adaptable as $key => $value) {
                 $orderColumn[$key] = $value[$columnName];
             }
             $order = $e->getValue() != 'asc' ? SORT_DESC : SORT_ASC;
             array_multisort($orderColumn, $order, $adaptable);
             // update adaptable array
             $this->adaptable = $adaptable;
             break;
     }
 }
Example #2
0
 /**
  * Prepare adapter
  *
  * @param \DataGrid\EventManager\GridEvent $e
  */
 public function onExecute(GridEvent $e)
 {
     $eventManager = $e->getDataGrid()->getEventManager();
     $stateStorage = $e->getDataGrid()->getStateStorage();
     $this->setItemsPerPage($stateStorage->getItemsPerPage());
     $this->setPageNumber($stateStorage->getPageNumber());
     foreach ($this->getColumnsInfo() as $column) {
         $actions = $stateStorage->getColumnActions($column->getName());
         foreach ($actions as $action => $value) {
             // prepare event
             $e = new AdapterEvent();
             $e->setColumn($column);
             $e->setAction($action);
             $e->setValue($value);
             $e->setAdapter($this);
             // trigger
             $eventManager->trigger($e);
         }
     }
 }