/** * {@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); } }
/** * {@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); } }
/** * {@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); }