예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }