/**
  * Instantiates the class object
  *
  * @return NgSymfonyToolsApiContentConverter
  */
 public static function instance()
 {
     if (self::$instance === null) {
         $serviceContainer = ezpKernel::instance()->getServiceContainer();
         self::$instance = new self($serviceContainer->get('ezpublish.api.repository'));
     }
     return self::$instance;
 }
 /**
  * Executes the template operator
  *
  * @param eZTemplate $tpl
  * @param string $operatorName
  * @param mixed $operatorParameters
  * @param string $rootNamespace
  * @param string $currentNamespace
  * @param mixed $operatorValue
  * @param array $namedParameters
  * @param mixed $placement
  */
 function modify($tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters, $placement)
 {
     if (!is_string($namedParameters['name']) && empty($namedParameters['name'])) {
         $tpl->error($operatorName, "{$operatorName} parameter 'name' must be a non empty string.", $placement);
         return;
     }
     $templateName = $namedParameters['name'];
     if ($namedParameters['parameters'] !== null && !is_array($namedParameters['parameters'])) {
         $tpl->error($operatorName, "{$operatorName} parameter 'parameters' must be a hash array.", $placement);
         return;
     }
     $templateParameters = $namedParameters['parameters'] !== null ? $namedParameters['parameters'] : array();
     $apiContentConverter = NgSymfonyToolsApiContentConverter::instance();
     foreach ($templateParameters as $parameterName => $parameterValue) {
         $templateParameters[$parameterName] = $apiContentConverter->convert($parameterValue);
     }
     $serviceContainer = ezpKernel::instance()->getServiceContainer();
     $templatingEngine = $serviceContainer->get('templating');
     $operatorValue = $templatingEngine->render($templateName, $templateParameters);
 }
 /**
  * Executes the template operator
  *
  * @param eZTemplate $tpl
  * @param string $operatorName
  * @param mixed $operatorParameters
  * @param string $rootNamespace
  * @param string $currentNamespace
  * @param mixed $operatorValue
  * @param array $namedParameters
  * @param mixed $placement
  */
 function modify($tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters, $placement)
 {
     if (!is_string($namedParameters['controller']) || empty($namedParameters['controller'])) {
         $tpl->error($operatorName, "{$operatorName} parameter 'controller' must be a non empty string.", $placement);
         return;
     }
     $controller = $namedParameters['controller'];
     if ($namedParameters['attributes'] !== null && !is_array($namedParameters['attributes'])) {
         $tpl->error($operatorName, "{$operatorName} parameter 'attributes' must be a hash array.", $placement);
         return;
     }
     $attributes = $namedParameters['attributes'] !== null ? $namedParameters['attributes'] : array();
     if ($namedParameters['query'] !== null && !is_array($namedParameters['query'])) {
         $tpl->error($operatorName, "{$operatorName} parameter 'query' must be a hash array.", $placement);
         return;
     }
     $query = $namedParameters['query'] !== null ? $namedParameters['query'] : array();
     $apiContentConverter = NgSymfonyToolsApiContentConverter::instance();
     foreach ($attributes as $attributeName => $attributeValue) {
         $attributes[$attributeName] = $apiContentConverter->convert($attributeValue);
     }
     $operatorValue = self::getController($controller, $attributes, $query);
 }