Пример #1
0
 /**
  * Add column, column object have to extend Column
  * @param Column $column
  * @param int $position
  * @return Grid
  */
 public function addColumn($column, $position = 0)
 {
     if (!$column instanceof Column) {
         throw new \InvalidArgumentException('Your column needs to extend class Column.');
     }
     $column->setSecurityContext($this->securityContext);
     if ($position > 0) {
         $position--;
         $head = array_slice($this->columns, 0, $position);
         $tail = array_slice($this->columns, $position);
         $this->columns = array_merge($head, array($column), $tail);
     } else {
         $this->columns[] = $column;
     }
     return $this;
 }
Пример #2
0
 /**
  * @param \Sorien\DataGridBundle\Grid\Column\Column $column
  * @param boolean $withAlias
  * @return string
  */
 private function getFieldName($column, $withAlias = true)
 {
     $name = $column->getField();
     if (strpos($name, '.') === false) {
         return self::TABLE_ALIAS . '.' . $name;
     }
     $parent = self::TABLE_ALIAS;
     $elements = explode('.', $name);
     while ($element = array_shift($elements)) {
         if (count($elements) > 0) {
             $this->joins['_' . $element] = $parent . '.' . $element;
             $parent = '_' . $element;
             $name = $element;
         } else {
             $name .= '.' . $element;
         }
     }
     if ($withAlias) {
         return '_' . $name . ' as ' . $column->getId();
     }
     return '_' . $name;
 }
Пример #3
0
 /**
  * @param string $section
  * @param \Sorien\DataGridBundle\Grid\Grid $grid
  * @param \Sorien\DataGridBundle\Grid\Column\Column $param
  * @return string
  */
 public function getGridUrl($section, $grid, $param = null)
 {
     if ($section == 'order') {
         if ($param->isSorted()) {
             return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_ORDER . ']=' . $param->getId() . '|' . ($param->getOrder() == 'asc' ? 'desc' : 'asc');
         } else {
             return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_ORDER . ']=' . $param->getId() . '|asc';
         }
     } elseif ($section == 'page') {
         return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_PAGE . ']=' . $param;
     } elseif ($section == 'limit') {
         return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_LIMIT . ']=';
     }
 }
Пример #4
0
 public function renderCell($value, $row, $router)
 {
     if (key_exists((string) $value, $this->values)) {
         $value = $this->values[$value];
     }
     return parent::renderCell($value, $row, $router);
 }
Пример #5
0
 public function __initialize(array $params)
 {
     parent::__initialize($params);
     $this->setInputType($this->getParam('inputType', 'text'));
 }
Пример #6
0
 public function __initialize(array $params)
 {
     parent::__initialize(array_merge(array('sortable' => false, 'filterable' => false, 'source' => false), $params));
 }
Пример #7
0
 public function __construct($column, $title, array $rowActions = array(), array $params = array())
 {
     $this->rowActions = $rowActions;
     parent::__construct(array_merge($params, array('id' => $column, 'title' => $title, 'sortable' => false, 'source' => false)));
 }