コード例 #1
0
 /**
  * Tests fields returned by model for given content
  * @group restContentServices
  */
 public function testGetFieldsByContent()
 {
     $content = ezpContent::fromNodeId(2);
     $res = ezpRestContentModel::getFieldsByContent($content);
     self::assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_ARRAY, $res);
     foreach ($content->fields as $fieldName => $field) {
         self::assertArrayHasKey($fieldName, $res, "Result does not contain '{$fieldName}' field, present for given content");
         $attributeOutput = ezpRestContentModel::attributeOutputData($field);
         self::assertSame($attributeOutput, $res[$fieldName], "Result for field '{$fieldName}' must be the same as returned by ezpRestContentModel::attributeOutputData()");
     }
 }
コード例 #2
0
ファイル: content.php プロジェクト: legende91/ez
 /**
  * Handles a content request with fields per object or node id
  * Request: GET /api/content/object/XXX/fields
  * Request: GET /api/content/node/XXX/fields
  *
  * @return ezpRestMvcResult
  */
 public function doViewFields()
 {
     $this->setDefaultResponseGroups(array(self::VIEWFIELDS_RESPONSEGROUP_FIELDVALUES));
     $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 field values
     if ($this->hasResponseGroup(self::VIEWFIELDS_RESPONSEGROUP_FIELDVALUES)) {
         $result->variables['fields'] = ezpRestContentModel::getFieldsByContent($content);
     }
     // Handle object/node metadata
     if ($this->hasResponseGroup(self::VIEWFIELDS_RESPONSEGORUP_METADATA)) {
         $objectMetadata = ezpRestContentModel::getMetadataByContent($content);
         if ($isNodeRequested) {
             $nodeMetadata = ezpRestContentModel::getMetadataByLocation(ezpContentLocation::fetchByNodeId($this->nodeId));
             $objectMetadata = array_merge($objectMetadata, $nodeMetadata);
         }
         $result->variables['metadata'] = $objectMetadata;
     }
     return $result;
 }