コード例 #1
0
ファイル: ColumnOrder.php プロジェクト: norzechowicz/datagrid
 /**
  * {@inheritdoc}
  */
 public function postBuildView(DataGridEventInterface $event)
 {
     $view = $event->getData();
     $columns = $view->getColumns();
     if (count($columns)) {
         $positive = array();
         $negative = array();
         $neutral = array();
         $indexedColumns = array();
         foreach ($columns as $column) {
             if ($column->hasAttribute('display_order')) {
                 if (($order = $column->getAttribute('display_order')) >= 0) {
                     $positive[$column->getName()] = $order;
                 } else {
                     $negative[$column->getName()] = $order;
                 }
                 $indexedColumns[$column->getName()] = $column;
             } else {
                 $neutral[] = $column;
             }
         }
         asort($positive);
         asort($negative);
         $columns = array();
         foreach ($negative as $name => $order) {
             $columns[] = $indexedColumns[$name];
         }
         $columns = array_merge($columns, $neutral);
         foreach ($positive as $name => $order) {
             $columns[] = $indexedColumns[$name];
         }
         $view->setColumns($columns);
     }
 }
コード例 #2
0
ファイル: BindRequest.php プロジェクト: norzechowicz/datagrid
 /**
  * {@inheritdoc}
  */
 public function preBindData(DataGridEventInterface $event)
 {
     $dataGrid = $event->getDataGrid();
     $request = $event->getData();
     if (!$request instanceof Request) {
         return;
     }
     $name = $dataGrid->getName();
     $default = array();
     switch ($request->getMethod()) {
         case 'POST':
         case 'PUT':
         case 'DELETE':
         case 'PATCH':
             $data = $request->request->get($name, $default);
             break;
         case 'GET':
             $data = $request->query->get($name, $default);
             break;
         default:
             throw new DataGridException(sprintf('The request method "%s" is not supported', $request->getMethod()));
     }
     $event->setData($data);
 }