コード例 #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
 /**
  * {@inheritdoc}
  */
 public function readConfiguration(DataGridEventInterface $event)
 {
     $dataGrid = $event->getDataGrid();
     $dataGridConfiguration = array();
     foreach ($this->kernel->getBundles() as $bundle) {
         if ($this->hasDataGridConfiguration($bundle->getPath(), $dataGrid->getName())) {
             $configuration = $this->getDataGridConfiguration($bundle->getPath(), $dataGrid->getName());
             if (is_array($configuration)) {
                 $dataGridConfiguration = $configuration;
             }
         }
     }
     if (count($dataGridConfiguration)) {
         $this->buildConfiguration($dataGrid, $dataGridConfiguration);
     }
 }
コード例 #3
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);
 }