Example #1
0
 /**
  * Returns ezpRestContentProviderInterface object for given renderer and content
  *
  * @static
  * @param string $renderer
  * @param ezpContent $content
  * @return bool|ezpRestContentProviderInterface
  */
 public static function getRenderer($renderer, ezpContent $content, ezpRestMvcController $controller)
 {
     // If no content renderer has been given, we fall back to built-in 'xhtml' renderer.
     // Note: empty string is not a valid input.
     if (empty($renderer)) {
         $renderer = self::DEFAULT_RENDERER;
     }
     if (!self::$renderer instanceof ezpRestContentProviderInterface) {
         self::$renderer = self::createRenderer($renderer, $content, $controller);
     }
     return self::$renderer;
 }
Example #2
0
 /**
  * Handles content requests per node or object ID
  *
  * Requests:
  * - GET /api/content/node/XXX
  * - GET /api/content/object/XXX
  *
  * Optional HTTP parameters:
  * - translation=xxx-XX: an optionally forced locale to return
  *
  * @return ezpRestMvcResult
  */
 public function doViewContent()
 {
     $this->setDefaultResponseGroups(array(self::VIEWCONTENT_RESPONSEGROUP_METADATA));
     $isNodeRequested = false;
     if (isset($this->nodeId)) {
         $content = ezpContent::fromNodeId($this->nodeId);
         $isNodeRequested = true;
     } else {
         if (isset($this->objectId)) {
             $content = ezpContent::fromObjectId($this->objectId);
         }
     }
     $result = new ezpRestMvcResult();
     // translation parameter
     if ($this->hasContentVariable('Translation')) {
         $content->setActiveLanguage($this->getContentVariable('Translation'));
     }
     // Handle metadata
     if ($this->hasResponseGroup(self::VIEWCONTENT_RESPONSEGROUP_METADATA)) {
         $objectMetadata = ezpRestContentModel::getMetadataByContent($content);
         if ($isNodeRequested) {
             $nodeMetadata = ezpRestContentModel::getMetadataByLocation(ezpContentLocation::fetchByNodeId($this->nodeId));
             $objectMetadata = array_merge($objectMetadata, $nodeMetadata);
         }
         $result->variables['metadata'] = $objectMetadata;
     }
     // Handle locations if requested
     if ($this->hasResponseGroup(self::VIEWCONTENT_RESPONSEGROUP_LOCATIONS)) {
         $result->variables['locations'] = ezpRestContentModel::getLocationsByContent($content);
     }
     // Handle fields content if requested
     if ($this->hasResponseGroup(self::VIEWCONTENT_RESPONSEGROUP_FIELDS)) {
         $result->variables['fields'] = ezpRestContentModel::getFieldsByContent($content);
     }
     // Add links to fields resources
     $result->variables['links'] = ezpRestContentModel::getFieldsLinksByContent($content, $this->request);
     if ($outputFormat = $this->getContentVariable('OutputFormat')) {
         $renderer = ezpRestContentRenderer::getRenderer($outputFormat, $content, $this);
         $result->variables['renderedOutput'] = $renderer->render();
     }
     return $result;
 }