Exemple #1
0
 /**
  * Visits a single content field and generates its content
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\API\Repository\Values\ContentType\ContentType $contentType
  * @param \eZ\Publish\API\Repository\Values\Content\Field $field
  */
 public function visitField(Generator $generator, ContentType $contentType, Field $field)
 {
     $generator->startHashElement('field');
     $generator->startValueElement('id', $field->id);
     $generator->endValueElement('id');
     $generator->startValueElement('fieldDefinitionIdentifier', $field->fieldDefIdentifier);
     $generator->endValueElement('fieldDefinitionIdentifier');
     $generator->startValueElement('languageCode', $field->languageCode);
     $generator->endValueElement('languageCode');
     $this->fieldTypeSerializer->serializeFieldValue($generator, $contentType, $field);
     $generator->endHashElement('field');
 }
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\API\Repository\Values\ContentType\FieldDefinitionCreateStruct $fieldDefinitionCreateStruct
  */
 public function visit(Visitor $visitor, Generator $generator, $fieldDefinitionCreateStruct)
 {
     $generator->startObjectElement('FieldDefinition');
     $visitor->setHeader('Content-Type', $generator->getMediaType('FieldDefinitionCreateStruct'));
     $generator->startValueElement('identifier', $fieldDefinitionCreateStruct->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('fieldType', $fieldDefinitionCreateStruct->fieldTypeIdentifier);
     $generator->endValueElement('fieldType');
     $generator->startValueElement('fieldGroup', $fieldDefinitionCreateStruct->fieldGroup);
     $generator->endValueElement('fieldGroup');
     $generator->startValueElement('position', $fieldDefinitionCreateStruct->position);
     $generator->endValueElement('position');
     $generator->startValueElement('isTranslatable', $fieldDefinitionCreateStruct->isTranslatable ? 'true' : 'false');
     $generator->endValueElement('isTranslatable');
     $generator->startValueElement('isRequired', $fieldDefinitionCreateStruct->isRequired ? 'true' : 'false');
     $generator->endValueElement('isRequired');
     $generator->startValueElement('isInfoCollector', $fieldDefinitionCreateStruct->isInfoCollector ? 'true' : 'false');
     $generator->endValueElement('isInfoCollector');
     $generator->startValueElement('isSearchable', $fieldDefinitionCreateStruct->isSearchable ? 'true' : 'false');
     $generator->endValueElement('isSearchable');
     $this->fieldTypeSerializer->serializeFieldDefaultValue($generator, $fieldDefinitionCreateStruct->fieldTypeIdentifier, $fieldDefinitionCreateStruct->defaultValue);
     $this->fieldTypeSerializer->serializeFieldSettings($generator, $fieldDefinitionCreateStruct->fieldTypeIdentifier, $fieldDefinitionCreateStruct->fieldSettings);
     $this->fieldTypeSerializer->serializeValidatorConfiguration($generator, $fieldDefinitionCreateStruct->fieldTypeIdentifier, $fieldDefinitionCreateStruct->validatorConfiguration);
     if (!empty($fieldDefinitionCreateStruct->names)) {
         $generator->startHashElement('names');
         $generator->startList('value');
         foreach ($fieldDefinitionCreateStruct->names as $languageCode => $name) {
             $generator->startValueElement('value', $name, array('languageCode' => $languageCode));
             $generator->endValueElement('value');
         }
         $generator->endList('value');
         $generator->endHashElement('names');
     }
     if (!empty($fieldDefinitionCreateStruct->descriptions)) {
         $generator->startHashElement('descriptions');
         $generator->startList('value');
         foreach ($fieldDefinitionCreateStruct->descriptions as $languageCode => $description) {
             $generator->startValueElement('value', $description, array('languageCode' => $languageCode));
             $generator->endValueElement('value');
         }
         $generator->endList('value');
         $generator->endHashElement('descriptions');
     }
     $generator->endObjectElement('FieldDefinition');
 }
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\Core\REST\Server\Values\RestFieldDefinition $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $restFieldDefinition = $data;
     $fieldDefinition = $restFieldDefinition->fieldDefinition;
     $contentType = $restFieldDefinition->contentType;
     $urlTypeSuffix = $this->getUrlTypeSuffix($contentType->status);
     $generator->startObjectElement('FieldDefinition');
     $visitor->setHeader('Content-Type', $generator->getMediaType('FieldDefinition'));
     if ($contentType->status === APIContentType::STATUS_DRAFT) {
         $visitor->setHeader('Accept-Patch', $generator->getMediaType('FieldDefinitionUpdate'));
     }
     $generator->startAttribute('href', $this->router->generate("ezpublish_rest_loadContentType{$urlTypeSuffix}FieldDefinition", array('contentTypeId' => $contentType->id, 'fieldDefinitionId' => $fieldDefinition->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $fieldDefinition->id);
     $generator->endValueElement('id');
     $generator->startValueElement('identifier', $fieldDefinition->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('fieldType', $fieldDefinition->fieldTypeIdentifier);
     $generator->endValueElement('fieldType');
     $generator->startValueElement('fieldGroup', $fieldDefinition->fieldGroup);
     $generator->endValueElement('fieldGroup');
     $generator->startValueElement('position', $fieldDefinition->position);
     $generator->endValueElement('position');
     $generator->startValueElement('isTranslatable', $this->serializeBool($generator, $fieldDefinition->isTranslatable));
     $generator->endValueElement('isTranslatable');
     $generator->startValueElement('isRequired', $this->serializeBool($generator, $fieldDefinition->isRequired));
     $generator->endValueElement('isRequired');
     $generator->startValueElement('isInfoCollector', $this->serializeBool($generator, $fieldDefinition->isInfoCollector));
     $generator->endValueElement('isInfoCollector');
     $this->fieldTypeSerializer->serializeFieldDefaultValue($generator, $fieldDefinition->fieldTypeIdentifier, $fieldDefinition->defaultValue);
     $generator->startValueElement('isSearchable', $this->serializeBool($generator, $fieldDefinition->isSearchable));
     $generator->endValueElement('isSearchable');
     $this->visitNamesList($generator, $fieldDefinition->getNames());
     $descriptions = $fieldDefinition->getDescriptions();
     if (is_array($descriptions)) {
         $this->visitDescriptionsList($generator, $descriptions);
     }
     $this->fieldTypeSerializer->serializeFieldSettings($generator, $fieldDefinition->fieldTypeIdentifier, $fieldDefinition->getFieldSettings());
     $this->fieldTypeSerializer->serializeValidatorConfiguration($generator, $fieldDefinition->fieldTypeIdentifier, $fieldDefinition->getValidatorConfiguration());
     $generator->endObjectElement('FieldDefinition');
 }