public function __invoke(ColumnInterface $column) { /** @var PhpRenderer $view */ $view = $this->getView(); /** @var \Zend\View\Helper\EscapeHtml $escape */ $escape = $view->plugin('escapeHtml'); $attributes = $column->getAttributes(); $config = ['hidden' => true, 'hidedlg' => empty($attributes['hidedlg']) ? false : (bool) $attributes['hidedlg'], 'name' => $escape($column->getName())]; $config = array_merge($config, $column->getAttributes()); return (object) $config; }
/** * Возвращает конфигурацию колонки * @param ColumnInterface $column * @return array */ protected function getColumnConfig(ColumnInterface $column) { /** @var PhpRenderer $view */ $view = $this->getView(); /** @var \Zend\View\Helper\EscapeHtml $escape */ $escape = $view->plugin('escapeHtml'); $name = $escape($column->getName()); $header = $column->getHeader(); $config = ['label' => $header ? $escape($header->getTitle()) : null, 'index' => strtolower($name), 'name' => strtolower($name)]; return $config; }
/** * Метод осуществляет подготовку данных предустановленных мутаторов по умолчанию. * Преобразует массив данных для предустановленных мутаторов в общий формат. * @param ColumnInterface $column * @param array | Traversable $spec * @return array | Traversable */ protected function prepareMutatorsSpecification(ColumnInterface $column, $spec) { $mutatorsNames = $column->getInvokableMutators(); $mutatorsOptions = []; if (count($mutatorsNames)) { if (array_key_exists('options', $spec) && is_array($spec['options']) && array_key_exists('mutatorsOptions', $spec['options'])) { $mutatorsOptions = $spec['options']['mutatorsOptions']; } foreach ($mutatorsNames as $k => $mutator) { $spec['mutators'][] = ['type' => $mutator, 'options' => array_key_exists($k, $mutatorsOptions) ? $mutatorsOptions[$k] : []]; } unset($spec['options']['mutatorsOptions']); } return $spec; }