/** * Builds the View based on $parameters. * * @param array $parameters * * @throws \eZ\Publish\Core\Base\Exceptions\InvalidArgumentException If the tag cannot be loaded * * @return \eZ\Publish\Core\MVC\Symfony\View\View An implementation of the View interface */ public function buildView(array $parameters) { $view = new TagView(); if (!empty($parameters['viewType'])) { $view->setViewType($parameters['viewType']); } if (isset($parameters['tagId'])) { $view->setTag($this->tagsService->loadTag($parameters['tagId'])); } elseif (isset($parameters['tag']) && $parameters['tag'] instanceof Tag) { $view->setTag($parameters['tag']); } else { throw new InvalidArgumentException('Tag', 'No tag could be loaded from parameters'); } $this->viewConfigurator->configure($view); // Deprecated controller actions are replaced with their new equivalent, viewAction if (!$view->getControllerReference() instanceof ControllerReference) { if ($parameters['_controller'] === 'eztags.controller.tag_view:viewTag') { $view->setControllerReference(new ControllerReference('eztags.controller.tag_view:viewAction')); } // We want to have a default template for full tag view if ($view->getViewType() === 'full' && $view->getTemplateIdentifier() === null) { $view->setTemplateIdentifier($this->configResolver->getParameter('tag_view.template', 'eztags')); } } $this->viewParametersInjector->injectViewParameters($view, $parameters); return $view; }
/** * Builds a TagView object from $viewConfig. * * @param array $viewConfig * * @return \Netgen\TagsBundle\View\TagView */ protected function buildTagView(array $viewConfig) { $view = new TagView(); $view->setConfigHash($viewConfig); if (isset($viewConfig['template'])) { $view->setTemplateIdentifier($viewConfig['template']); } if (isset($viewConfig['controller'])) { $view->setControllerReference(new ControllerReference($viewConfig['controller'])); } return $view; }