コード例 #1
0
 /**
  * Get Columns data from url
  *
  * @param DatagridConfiguration $config
  * @param MetadataObject $data
  *
  * @return array $columnsData
  */
 protected function updateColumnsDataFromUrl(DatagridConfiguration $config, MetadataObject $data)
 {
     $columnsData = [];
     if ($this->getParameters() && $this->getParameters()->has(self::MINIFIED_COLUMNS_PARAM)) {
         /** Get columns data parameters from URL */
         $columnsParam = $this->getParameters()->get(self::MINIFIED_COLUMNS_PARAM, []);
         /** @var array $columnsConfigData */
         $columnsConfigData = $this->getColumnsWithOrder($config);
         /** @var array $minifiedColumnsState */
         $minifiedColumnsState = $this->columnsHelper->prepareColumnsParam($columnsConfigData, $columnsParam);
         $columns = $data->offsetGetOr(self::COLUMNS_PATH, []);
         foreach ($columns as $key => $column) {
             if (isset($column['name']) && isset($minifiedColumnsState[$column['name']])) {
                 $name = $column['name'];
                 $columnData = $minifiedColumnsState[$name];
                 if (array_key_exists(self::ORDER_FIELD_NAME, $columnData)) {
                     $columns[$key][self::ORDER_FIELD_NAME] = $columnData[self::ORDER_FIELD_NAME];
                     $columnsData[$name][self::ORDER_FIELD_NAME] = $columnData[self::ORDER_FIELD_NAME];
                 }
                 if (array_key_exists(self::RENDER_FIELD_NAME, $columnData)) {
                     $columns[$key][self::RENDER_FIELD_NAME] = $columnData[self::RENDER_FIELD_NAME];
                     $columnsData[$name][self::RENDER_FIELD_NAME] = $columnData[self::RENDER_FIELD_NAME];
                 }
             }
         }
         $data->offsetSetByPath(self::COLUMNS_PATH, $columns);
         if (!empty($columnsData)) {
             $this->setState($data, $columnsData);
         }
     }
     return $columnsData;
 }
コード例 #2
0
 /**
  * @param array  $columnsConfigArray
  * @param string $columns
  * @param array  $result
  *
  * @dataProvider prepareColumnsParamProvider
  */
 public function testPrepareColumnsParam($columnsConfigArray, $columns, $result)
 {
     $columnsData = $this->columnsHelper->prepareColumnsParam($columnsConfigArray, $columns);
     static::assertEquals($columnsData, $result);
 }