startValueElement() abstract public method

Start value element.
abstract public startValueElement ( string $name, string $value )
$name string
$value string
Example #1
0
 /**
  * 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\Content\URLAlias $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('UrlAlias');
     $visitor->setHeader('Content-Type', $generator->getMediaType('UrlAlias'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadURLAlias', array('urlAliasId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startAttribute('id', $data->id);
     $generator->endAttribute('id');
     $generator->startAttribute('type', $this->serializeType($data->type));
     $generator->endAttribute('type');
     if ($data->type === Values\Content\URLAlias::LOCATION) {
         $generator->startObjectElement('location', 'Location');
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => $data->destination)));
         $generator->endAttribute('href');
         $generator->endObjectElement('location');
     } else {
         $generator->startValueElement('resource', $data->destination);
         $generator->endValueElement('resource');
     }
     $generator->startValueElement('path', $data->path);
     $generator->endValueElement('path');
     $generator->startValueElement('languageCodes', implode(',', $data->languageCodes));
     $generator->endValueElement('languageCodes');
     $generator->startValueElement('alwaysAvailable', $this->serializeBool($generator, $data->alwaysAvailable));
     $generator->endValueElement('alwaysAvailable');
     $generator->startValueElement('isHistory', $this->serializeBool($generator, $data->isHistory));
     $generator->endValueElement('isHistory');
     $generator->startValueElement('forward', $this->serializeBool($generator, $data->forward));
     $generator->endValueElement('forward');
     $generator->startValueElement('custom', $this->serializeBool($generator, $data->isCustom));
     $generator->endValueElement('custom');
     $generator->endObjectElement('UrlAlias');
 }
Example #2
0
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \Exception $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ErrorMessage');
     $statusCode = $this->getStatus();
     $visitor->setStatus($statusCode);
     $visitor->setHeader('Content-Type', $generator->getMediaType('ErrorMessage'));
     $generator->startValueElement('errorCode', $statusCode);
     $generator->endValueElement('errorCode');
     $generator->startValueElement('errorMessage', $this->httpStatusCodes[$statusCode]);
     $generator->endValueElement('errorMessage');
     if ($data instanceof Translatable && $this->translator) {
         /** @Ignore */
         $errorDescription = $this->translator->trans($data->getMessageTemplate(), $data->getParameters(), 'repository_exceptions');
     } else {
         $errorDescription = $data->getMessage();
     }
     $generator->startValueElement('errorDescription', $errorDescription);
     $generator->endValueElement('errorDescription');
     if ($this->debug) {
         $generator->startValueElement('trace', $data->getTraceAsString());
         $generator->endValueElement('trace');
         $generator->startValueElement('file', $data->getFile());
         $generator->endValueElement('file');
         $generator->startValueElement('line', $data->getLine());
         $generator->endValueElement('line');
     }
     if ($previous = $data->getPrevious()) {
         $generator->startObjectElement('Previous', 'ErrorMessage');
         $visitor->visitValueObject($previous);
         $generator->endObjectElement('Previous');
     }
     $generator->endObjectElement('ErrorMessage');
 }
 /**
  * Visit struct returned by controllers
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ObjectStateCreate');
     $visitor->setHeader('Content-Type', $generator->getMediaType('ObjectStateCreate'));
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('priority', $data->priority);
     $generator->endValueElement('priority');
     $generator->startValueElement('defaultLanguageCode', $data->defaultLanguageCode);
     $generator->endValueElement('defaultLanguageCode');
     $generator->startHashElement('names');
     $generator->startList('value');
     foreach ($data->names as $languageCode => $name) {
         $generator->startValueElement('value', $name, array('languageCode' => $languageCode));
         $generator->endValueElement('value');
     }
     $generator->endList('value');
     $generator->endHashElement('names');
     $generator->startHashElement('descriptions');
     foreach ($data->descriptions as $languageCode => $description) {
         $generator->startValueElement('value', $description, array('languageCode' => $languageCode));
         $generator->endValueElement('value');
     }
     $generator->endHashElement('descriptions');
     $generator->endObjectElement('ObjectStateCreate');
 }
Example #4
0
 /**
  * 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\User\Policy $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Policy');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Policy'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('PolicyUpdate'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadPolicy', array('roleId' => $data->roleId, 'policyId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $data->id);
     $generator->endValueElement('id');
     $generator->startValueElement('module', $data->module);
     $generator->endValueElement('module');
     $generator->startValueElement('function', $data->function);
     $generator->endValueElement('function');
     $limitations = $data->getLimitations();
     if (!empty($limitations)) {
         $generator->startHashElement('limitations');
         $generator->startList('limitation');
         foreach ($limitations as $limitation) {
             $this->visitLimitation($generator, $limitation);
         }
         $generator->endList('limitation');
         $generator->endHashElement('limitations');
     }
     $generator->endObjectElement('Policy');
 }
 /**
  * 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\Common\Values\RestObjectState $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ObjectState');
     $visitor->setHeader('Content-Type', $generator->getMediaType('ObjectState'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('ObjectStateUpdate'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadObjectState', array('objectStateGroupId' => $data->groupId, 'objectStateId' => $data->objectState->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $data->objectState->id);
     $generator->endValueElement('id');
     $generator->startValueElement('identifier', $data->objectState->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('priority', $data->objectState->priority);
     $generator->endValueElement('priority');
     $generator->startObjectElement('ObjectStateGroup');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadObjectStateGroup', array('objectStateGroupId' => $data->groupId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('ObjectStateGroup');
     $generator->startValueElement('defaultLanguageCode', $data->objectState->defaultLanguageCode);
     $generator->endValueElement('defaultLanguageCode');
     $generator->startValueElement('languageCodes', implode(',', $data->objectState->languageCodes));
     $generator->endValueElement('languageCodes');
     $this->visitNamesList($generator, $data->objectState->getNames());
     $this->visitDescriptionsList($generator, $data->objectState->getDescriptions());
     $generator->endObjectElement('ObjectState');
 }
 /**
  * @param \eZ\Publish\SPI\Variation\Values\ImageVariation $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ContentImageVariation');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_binaryContent_getImageVariation', array('imageId' => $data->imageId, 'variationIdentifier' => $data->name)));
     $generator->endAttribute('href');
     $generator->startValueElement('uri', $data->uri);
     $generator->endValueElement('uri');
     if ($data->mimeType) {
         $generator->startValueElement('contentType', $data->mimeType);
         $generator->endValueElement('contentType');
     }
     if ($data->width) {
         $generator->startValueElement('width', $data->width);
         $generator->endValueElement('width');
     }
     if ($data->height) {
         $generator->startValueElement('height', $data->height);
         $generator->endValueElement('height');
     }
     if ($data->fileSize) {
         $generator->startValueElement('fileSize', $data->fileSize);
         $generator->endValueElement('fileSize');
     }
     $generator->endObjectElement('ContentImageVariation');
 }
 /**
  * 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\ContentTypeGroup $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ContentTypeGroup');
     $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeGroup'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('ContentTypeGroupInput'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContentTypeGroup', array('contentTypeGroupId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $data->id);
     $generator->endValueElement('id');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('created', $data->creationDate->format('c'));
     $generator->endValueElement('created');
     $generator->startValueElement('modified', $data->modificationDate->format('c'));
     $generator->endValueElement('modified');
     $generator->startObjectElement('Creator', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $data->creatorId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Creator');
     $generator->startObjectElement('Modifier', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $data->modifierId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Modifier');
     $generator->startObjectElement('ContentTypes', 'ContentTypeInfoList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_listContentTypesForGroup', array('contentTypeGroupId' => $data->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('ContentTypes');
     $generator->endObjectElement('ContentTypeGroup');
 }
 /**
  * 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\RestExecutedView $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('View');
     $visitor->setHeader('Content-Type', $generator->getMediaType('View'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_views_load', array('viewId' => $data->identifier)));
     $generator->endAttribute('href');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     // BEGIN Query
     $generator->startObjectElement('Query');
     $generator->endObjectElement('Query');
     // END Query
     // BEGIN Result
     $generator->startObjectElement('Result', 'ViewResult');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_views_load_results', array('viewId' => $data->identifier)));
     $generator->endAttribute('href');
     // BEGIN Result metadata
     $generator->startValueElement('count', $data->searchResults->totalCount);
     $generator->endValueElement('count');
     $generator->startValueElement('time', $data->searchResults->time);
     $generator->endValueElement('time');
     $generator->startValueElement('timedOut', $generator->serializeBool($data->searchResults->timedOut));
     $generator->endValueElement('timedOut');
     $generator->startValueElement('maxScore', $data->searchResults->maxScore);
     $generator->endValueElement('maxScore');
     // END Result metadata
     // BEGIN searchHits
     $generator->startHashElement('searchHits');
     $generator->startList('searchHit');
     foreach ($data->searchResults->searchHits as $searchHit) {
         $generator->startObjectElement('searchHit');
         $generator->startAttribute('score', 0);
         $generator->endAttribute('score');
         $generator->startAttribute('index', 0);
         $generator->endAttribute('index');
         $generator->startObjectElement('value');
         // @todo Refactor
         if ($searchHit->valueObject instanceof ApiValues\Content) {
             /** @var \eZ\Publish\API\Repository\Values\Content\ContentInfo $contentInfo */
             $contentInfo = $searchHit->valueObject->contentInfo;
             $valueObject = new RestContentValue($contentInfo, $this->locationService->loadLocation($contentInfo->mainLocationId), $searchHit->valueObject, $this->contentTypeService->loadContentType($contentInfo->contentTypeId), $this->contentService->loadRelations($searchHit->valueObject->getVersionInfo()));
         } elseif ($searchHit->valueObject instanceof ApiValues\Location) {
             $valueObject = $searchHit->valueObject;
         } elseif ($searchHit->valueObject instanceof ApiValues\ContentInfo) {
             $valueObject = new RestContentValue($searchHit->valueObject);
         } else {
             throw new Exceptions\InvalidArgumentException('Unhandled object type');
         }
         $visitor->visitValueObject($valueObject);
         $generator->endObjectElement('value');
         $generator->endObjectElement('searchHit');
     }
     $generator->endList('searchHit');
     $generator->endHashElement('searchHits');
     // END searchHits
     $generator->endObjectElement('Result');
     // END Result
     $generator->endObjectElement('View');
 }
Example #9
0
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('SessionInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('SessionInput'));
     $generator->startValueElement('login', $data->login);
     $generator->endValueElement('login');
     $generator->startValueElement('password', $data->password);
     $generator->endValueElement('password');
     $generator->endObjectElement('SessionInput');
 }
 /**
  * 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('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 mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('SectionInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('SectionInput'));
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('name', $data->name);
     $generator->endValueElement('name');
     $generator->endObjectElement('SectionInput');
 }
Example #12
0
 /**
  * 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\RestLocation $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Location');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Location'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('LocationUpdate'));
     $location = $data->location;
     $contentInfo = $location->getContentInfo();
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => trim($location->pathString, '/'))));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $location->id);
     $generator->endValueElement('id');
     $generator->startValueElement('priority', $location->priority);
     $generator->endValueElement('priority');
     $generator->startValueElement('hidden', $this->serializeBool($generator, $location->hidden));
     $generator->endValueElement('hidden');
     $generator->startValueElement('invisible', $this->serializeBool($generator, $location->invisible));
     $generator->endValueElement('invisible');
     $generator->startObjectElement('ParentLocation', 'Location');
     if (trim($location->pathString, '/') !== '1') {
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => implode('/', array_slice($location->path, 0, count($location->path) - 1)))));
         $generator->endAttribute('href');
     }
     $generator->endObjectElement('ParentLocation');
     $generator->startValueElement('pathString', $location->pathString);
     $generator->endValueElement('pathString');
     $generator->startValueElement('depth', $location->depth);
     $generator->endValueElement('depth');
     $generator->startValueElement('childCount', $data->childCount);
     $generator->endValueElement('childCount');
     $generator->startValueElement('remoteId', $location->remoteId);
     $generator->endValueElement('remoteId');
     $generator->startObjectElement('Children', 'LocationList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocationChildren', array('locationPath' => trim($location->pathString, '/'))));
     $generator->endAttribute('href');
     $generator->endObjectElement('Children');
     $generator->startObjectElement('Content');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Content');
     $generator->startValueElement('sortField', $this->serializeSortField($location->sortField));
     $generator->endValueElement('sortField');
     $generator->startValueElement('sortOrder', $this->serializeSortOrder($location->sortOrder));
     $generator->endValueElement('sortOrder');
     $generator->startObjectElement('UrlAliases', 'UrlAliasRefList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_listLocationURLAliases', array('locationPath' => trim($location->pathString, '/'))));
     $generator->endAttribute('href');
     $generator->endObjectElement('UrlAliases');
     $generator->startObjectElement('ContentInfo', 'ContentInfo');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $visitor->visitValueObject(new RestContentValue($contentInfo));
     $generator->endObjectElement('ContentInfo');
     $generator->endObjectElement('Location');
 }
 /**
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $visitor->setHeader('Content-Type', $generator->getMediaType('ContentList'));
     if (empty($data->contents)) {
         $visitor->setStatus(204);
         return;
     }
     $generator->startObjectElement('contentList');
     $generator->startList('content');
     foreach ($data->contents as $content) {
         $generator->startObjectElement('content');
         $generator->startValueElement('contentId', $content['contentId']);
         $generator->endValueElement('contentId');
         $generator->startValueElement('contentTypeId', $content['contentTypeId']);
         $generator->endValueElement('contentTypeId');
         $generator->startValueElement('identifier', $content['identifier']);
         $generator->endValueElement('identifier');
         $generator->startValueElement('language', $content['language']);
         $generator->endValueElement('language');
         $generator->startValueElement('publishedDate', $content['publishedDate']);
         $generator->endValueElement('publishedDate');
         $generator->startValueElement('author', $content['author']);
         $generator->endValueElement('author');
         $generator->startValueElement('uri', $content['uri']);
         $generator->endValueElement('uri');
         $generator->startValueElement('categoryPath', $content['categoryPath']);
         $generator->endValueElement('categoryPath');
         $generator->startObjectElement('mainLocation');
         $generator->startAttribute('href', $content['mainLocation']['href']);
         $generator->endAttribute('href');
         $generator->endObjectElement('mainLocation');
         $generator->startObjectElement('locations');
         $generator->startAttribute('href', $content['locations']['href']);
         $generator->endAttribute('href');
         $generator->endObjectElement('locations');
         $generator->startList('fields');
         foreach ($content['fields'] as $field) {
             $generator->startHashElement('fields');
             $generator->startValueElement('key', $field['key']);
             $generator->endValueElement('key');
             $generator->startValueElement('value', $field['value']);
             $generator->endValueElement('value');
             $generator->endHashElement('fields');
         }
         $generator->endList('fields');
         $generator->endObjectElement('content');
     }
     $generator->endList('content');
     $generator->endObjectElement('contentList');
 }
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('LocationUpdate');
     $visitor->setHeader('Content-Type', $generator->getMediaType('LocationUpdate'));
     $generator->startValueElement('priority', $data->priority);
     $generator->endValueElement('priority');
     $generator->startValueElement('remoteId', $data->remoteId);
     $generator->endValueElement('remoteId');
     $generator->startValueElement('sortField', $this->getSortFieldName($data->sortField));
     $generator->endValueElement('sortField');
     $generator->startValueElement('sortOrder', $data->sortOrder == Location::SORT_ORDER_ASC ? 'ASC' : 'DESC');
     $generator->endValueElement('sortOrder');
     $generator->endObjectElement('LocationUpdate');
 }
Example #15
0
 /**
  * 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\Content\Section $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Section');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Section'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('SectionInput'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadSection', array('sectionId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('sectionId', $data->id);
     $generator->endValueElement('sectionId');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startValueElement('name', $data->name);
     $generator->endValueElement('name');
     $generator->endObjectElement('Section');
 }
Example #16
0
 /**
  * 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\Content\URLWildcard $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('UrlWildcard');
     $visitor->setHeader('Content-Type', $generator->getMediaType('UrlWildcard'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadURLWildcard', array('urlWildcardId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startAttribute('id', $data->id);
     $generator->endAttribute('id');
     $generator->startValueElement('sourceUrl', $data->sourceUrl);
     $generator->endValueElement('sourceUrl');
     $generator->startValueElement('destinationUrl', $data->destinationUrl);
     $generator->endValueElement('destinationUrl');
     $generator->startValueElement('forward', $this->serializeBool($generator, $data->forward));
     $generator->endValueElement('forward');
     $generator->endObjectElement('UrlWildcard');
 }
Example #17
0
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \Netgen\TagsBundle\Core\REST\Server\Values\RestTag $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Tag');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Tag'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('TagUpdate'));
     $tag = $data->tag;
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_loadTag', array('tagPath' => trim($tag->pathString, '/'))));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $tag->id);
     $generator->endValueElement('id');
     $tagPath = explode('/', trim($tag->pathString, '/'));
     $parentPathString = implode('/', array_slice($tagPath, 0, count($tagPath) - 1));
     if (!empty($tag->parentTagId)) {
         $generator->startObjectElement('ParentTag', 'Tag');
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_loadTag', array('tagPath' => $parentPathString)));
         $generator->endAttribute('href');
         $generator->endObjectElement('ParentTag');
     }
     if (!empty($tag->mainTagId)) {
         $generator->startObjectElement('MainTag', 'Tag');
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_loadTag', array('tagPath' => $parentPathString . '/' . $tag->mainTagId)));
         $generator->endAttribute('href');
         $generator->endObjectElement('MainTag');
     }
     $this->visitTranslatedList($generator, $tag->keywords, 'keywords');
     $generator->startValueElement('depth', $tag->depth);
     $generator->endValueElement('depth');
     $generator->startValueElement('pathString', $tag->pathString);
     $generator->endValueElement('pathString');
     $generator->startValueElement('modificationDate', $tag->modificationDate->format('c'));
     $generator->endValueElement('modificationDate');
     $generator->startValueElement('remoteId', $tag->remoteId);
     $generator->endValueElement('remoteId');
     $generator->startValueElement('alwaysAvailable', $this->serializeBool($generator, $tag->alwaysAvailable));
     $generator->endValueElement('alwaysAvailable');
     $generator->startValueElement('mainLanguageCode', $tag->mainLanguageCode);
     $generator->endValueElement('mainLanguageCode');
     $generator->startValueElement('languageCodes', implode(',', $tag->languageCodes));
     $generator->endValueElement('languageCodes');
     if (empty($tag->mainTagId)) {
         $generator->startValueElement('childrenCount', $data->childrenCount);
         $generator->endValueElement('childrenCount');
         $generator->startObjectElement('Children', 'TagList');
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_loadTagChildren', array('tagPath' => trim($tag->pathString, '/'))));
         $generator->endAttribute('href');
         $generator->endObjectElement('Children');
         $generator->startValueElement('synonymsCount', $data->synonymsCount);
         $generator->endValueElement('synonymsCount');
         $generator->startObjectElement('Synonyms', 'TagList');
         $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_loadTagSynonyms', array('tagPath' => trim($tag->pathString, '/'))));
         $generator->endAttribute('href');
         $generator->endObjectElement('Synonyms');
     }
     $generator->startObjectElement('RelatedContent', 'ContentList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_eztags_getRelatedContent', array('tagPath' => trim($tag->pathString, '/'))));
     $generator->endAttribute('href');
     $generator->endObjectElement('RelatedContent');
     $generator->endObjectElement('Tag');
 }
 /**
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param array $contentList
  *
  * @return Generator
  */
 public function generateElement(Generator $generator, array $contentList = [])
 {
     $generator->startObjectElement('contentList');
     $generator->startList('content');
     foreach ($contentList as $content) {
         $generator->startObjectElement('content');
         $generator->startValueElement('contentId', $content['contentId']);
         $generator->endValueElement('contentId');
         $generator->startValueElement('contentTypeId', $content['contentTypeId']);
         $generator->endValueElement('contentTypeId');
         $generator->startValueElement('identifier', $content['identifier']);
         $generator->endValueElement('identifier');
         $generator->startValueElement('language', $content['language']);
         $generator->endValueElement('language');
         $generator->startValueElement('publishedDate', $content['publishedDate']);
         $generator->endValueElement('publishedDate');
         $generator->startValueElement('author', $content['author']);
         $generator->endValueElement('author');
         $generator->startValueElement('uri', $content['uri']);
         $generator->endValueElement('uri');
         $generator->startValueElement('categoryPath', $content['categoryPath']);
         $generator->endValueElement('categoryPath');
         $generator->startObjectElement('mainLocation');
         $generator->startAttribute('href', $content['mainLocation']['href']);
         $generator->endAttribute('href');
         $generator->endObjectElement('mainLocation');
         $generator->startObjectElement('locations');
         $generator->startAttribute('href', $content['locations']['href']);
         $generator->endAttribute('href');
         $generator->endObjectElement('locations');
         $generator->startList('fields');
         foreach ($content['fields'] as $field) {
             $generator->startHashElement('fields');
             $generator->startValueElement('key', $field['key']);
             $generator->endValueElement('key');
             $generator->startValueElement('value', $field['value']);
             $generator->endValueElement('value');
             $generator->endHashElement('fields');
         }
         $generator->endList('fields');
         $generator->endObjectElement('content');
     }
     $generator->endList('content');
     $generator->endObjectElement('contentList');
     return $generator;
 }
 /**
  * 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\RestTrashItem $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('TrashItem');
     $visitor->setHeader('Content-Type', $generator->getMediaType('TrashItem'));
     $trashItem = $data->trashItem;
     $contentInfo = $trashItem->getContentInfo();
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadTrashItem', array('trashItemId' => $trashItem->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('id', $trashItem->id);
     $generator->endValueElement('id');
     $generator->startValueElement('priority', $trashItem->priority);
     $generator->endValueElement('priority');
     $generator->startValueElement('hidden', $this->serializeBool($generator, $trashItem->hidden));
     $generator->endValueElement('hidden');
     $generator->startValueElement('invisible', $this->serializeBool($generator, $trashItem->invisible));
     $generator->endValueElement('invisible');
     $pathStringParts = explode('/', trim($trashItem->pathString, '/'));
     $pathStringParts = array_slice($pathStringParts, 0, count($pathStringParts) - 1);
     $generator->startObjectElement('ParentLocation', 'Location');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => implode('/', $pathStringParts))));
     $generator->endAttribute('href');
     $generator->endObjectElement('ParentLocation');
     $generator->startValueElement('pathString', $trashItem->pathString);
     $generator->endValueElement('pathString');
     $generator->startValueElement('depth', $trashItem->depth);
     $generator->endValueElement('depth');
     $generator->startValueElement('childCount', $data->childCount);
     $generator->endValueElement('childCount');
     $generator->startValueElement('remoteId', $trashItem->remoteId);
     $generator->endValueElement('remoteId');
     $generator->startObjectElement('Content');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Content');
     $generator->startValueElement('sortField', $this->serializeSortField($trashItem->sortField));
     $generator->endValueElement('sortField');
     $generator->startValueElement('sortOrder', $this->serializeSortOrder($trashItem->sortOrder));
     $generator->endValueElement('sortOrder');
     $generator->startObjectElement('ContentInfo', 'ContentInfo');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $contentInfo->id)));
     $generator->endAttribute('href');
     $visitor->visitValueObject(new RestContentValue($contentInfo));
     $generator->endObjectElement('ContentInfo');
     $generator->endObjectElement('TrashItem');
 }
 /**
  * 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\Content\VersionInfo $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $versionInfo = $data;
     $generator->startHashElement('VersionInfo');
     $generator->startValueElement('id', $versionInfo->id);
     $generator->endValueElement('id');
     $generator->startValueElement('versionNo', $versionInfo->versionNo);
     $generator->endValueElement('versionNo');
     $generator->startValueElement('status', $this->getStatusString($versionInfo->status));
     $generator->endValueElement('status');
     $generator->startValueElement('modificationDate', $versionInfo->modificationDate->format('c'));
     $generator->endValueElement('modificationDate');
     $generator->startObjectElement('Creator', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $versionInfo->creatorId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Creator');
     $generator->startValueElement('creationDate', $versionInfo->creationDate->format('c'));
     $generator->endValueElement('creationDate');
     $generator->startValueElement('initialLanguageCode', $versionInfo->initialLanguageCode);
     $generator->endValueElement('initialLanguageCode');
     $generator->startValueElement('languageCodes', implode(',', $versionInfo->languageCodes));
     $generator->endValueElement('languageCodes');
     $this->visitNamesList($generator, $versionInfo->names);
     $generator->startObjectElement('Content', 'ContentInfo');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $versionInfo->getContentInfo()->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Content');
     $generator->endHashElement('VersionInfo');
 }
 /**
  * Visit struct returned by controllers.
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ContentTypeGroupInput');
     $visitor->setHeader('Content-Type', $generator->getMediaType('ContentTypeGroupInput'));
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     if ($data->creatorId !== null) {
         $generator->startObjectElement('User');
         $generator->startAttribute('href', $data->creatorId);
         $generator->endAttribute('href');
         $generator->endObjectElement('User');
     }
     if ($data->creationDate !== null) {
         $generator->startValueElement('modificationDate', $data->creationDate->format('c'));
         $generator->endValueElement('modificationDate');
     }
     $generator->endObjectElement('ContentTypeGroupInput');
 }
 /**
  * Visit struct returned by controllers
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('LocationCreate');
     $visitor->setHeader('Content-Type', $generator->getMediaType('LocationCreate'));
     $generator->startObjectElement('ParentLocation', 'Location');
     $generator->startAttribute('href', $data->parentLocationId);
     $generator->endAttribute('href');
     $generator->endObjectElement('ParentLocation');
     $generator->startValueElement('priority', $data->priority);
     $generator->endValueElement('priority');
     $generator->startValueElement('hidden', $data->hidden ? 'true' : 'false');
     $generator->endValueElement('hidden');
     $generator->startValueElement('sortField', $this->getSortFieldName($data->sortField));
     $generator->endValueElement('sortField');
     $generator->startValueElement('sortOrder', $data->sortOrder == Location::SORT_ORDER_ASC ? 'ASC' : 'DESC');
     $generator->endValueElement('sortOrder');
     $generator->endObjectElement('LocationCreate');
 }
 /**
  * @param Visitor $visitor
  * @param Generator $generator
  * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion\ContentTypeIdentifier $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $contentTypeIdentifiers = is_array($data->value) ? $data->value : [$data->value];
     $generator->startList('ContentTypeIdentifierCriterion');
     foreach ($contentTypeIdentifiers as $contentTypeIdentifier) {
         $generator->startValueElement('ContentTypeIdentifierCriterion', $contentTypeIdentifier);
         $generator->endValueElement('ContentTypeIdentifierCriterion');
     }
     $generator->endList('ContentTypeIdentifierCriterion');
 }
 /**
  * Visit struct returned by controllers
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param mixed $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('PolicyCreate');
     $visitor->setHeader('Content-Type', $generator->getMediaType('PolicyCreate'));
     $generator->startValueElement('module', $data->module);
     $generator->endValueElement('module');
     $generator->startValueElement('function', $data->function);
     $generator->endValueElement('function');
     $limitations = $data->getLimitations();
     if (!empty($limitations)) {
         $generator->startObjectElement('limitations');
         $generator->startList('limitations');
         foreach ($limitations as $limitation) {
             $visitor->visitValueObject($limitation);
         }
         $generator->endList('limitations');
         $generator->endObjectElement('limitations');
     }
     $generator->endObjectElement('PolicyCreate');
 }
 /**
  * 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\RestRelation $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Relation');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Relation'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadVersionRelation', array('contentId' => $data->contentId, 'versionNumber' => $data->versionNo, 'relationId' => $data->relation->id)));
     $generator->endAttribute('href');
     $generator->startObjectElement('SourceContent', 'ContentInfo');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $data->contentId)));
     $generator->endAttribute('href');
     $generator->endObjectElement('SourceContent');
     $generator->startObjectElement('DestinationContent', 'ContentInfo');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadContent', array('contentId' => $data->relation->getDestinationContentInfo()->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('DestinationContent');
     if ($data->relation->sourceFieldDefinitionIdentifier !== null) {
         $generator->startValueElement('SourceFieldDefinitionIdentifier', $data->relation->sourceFieldDefinitionIdentifier);
         $generator->endValueElement('SourceFieldDefinitionIdentifier');
     }
     $generator->startValueElement('RelationType', $this->getRelationTypeString($data->relation->type));
     $generator->endValueElement('RelationType');
     $generator->endObjectElement('Relation');
 }
 /**
  * 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\Exceptions\ContentFieldValidationException $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ErrorMessage');
     $statusCode = $this->getStatus();
     $visitor->setStatus($statusCode);
     $visitor->setHeader('Content-Type', $generator->getMediaType('ErrorMessage'));
     $generator->startValueElement('errorCode', $statusCode);
     $generator->endValueElement('errorCode');
     $generator->startValueElement('errorMessage', $this->httpStatusCodes[$statusCode]);
     $generator->endValueElement('errorMessage');
     $generator->startValueElement('errorDescription', $data->getMessage());
     $generator->endValueElement('errorDescription');
     $generator->startHashElement('errorDetails');
     $generator->startList('fields');
     foreach ($data->getFieldErrors() as $fieldTypeId => $translations) {
         foreach ($translations as $languageCode => $validationErrors) {
             if (!is_array($validationErrors)) {
                 $validationErrors = [$validationErrors];
             }
             foreach ($validationErrors as $validationError) {
                 $generator->startHashElement('field');
                 $generator->startAttribute('fieldTypeId', $fieldTypeId);
                 $generator->endAttribute('fieldTypeId');
                 $generator->startList('errors');
                 $generator->startHashElement('error');
                 $generator->startValueElement('type', $validationError->getTarget());
                 $generator->endValueElement('type');
                 $translation = $validationError->getTranslatableMessage();
                 $generator->startValueElement('message', $this->translator->trans($this->translationToString($translation), $translation->values, 'repository_exceptions'));
                 $generator->endValueElement('message');
                 $generator->endHashElement('error');
                 $generator->endList('errors');
                 $generator->endHashElement('field');
             }
         }
     }
     $generator->endList('fields');
     $generator->endHashElement('errorDetails');
     if ($this->debug) {
         $generator->startValueElement('trace', $data->getTraceAsString());
         $generator->endValueElement('trace');
         $generator->startValueElement('file', $data->getFile());
         $generator->endValueElement('file');
         $generator->startValueElement('line', $data->getLine());
         $generator->endValueElement('line');
     }
     $generator->endObjectElement('ErrorMessage');
 }
 /**
  * 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\UserSession $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $status = $data->created ? 201 : 200;
     $visitor->setStatus($status);
     $visitor->setHeader('Content-Type', $generator->getMediaType('Session'));
     $sessionHref = $this->router->generate('ezpublish_rest_deleteSession', array('sessionId' => $data->sessionId));
     //@todo Needs refactoring, disabling certain headers should not be done this way
     $visitor->setHeader('Accept-Patch', false);
     $generator->startObjectElement('Session');
     $generator->startAttribute('href', $sessionHref);
     $generator->endAttribute('href');
     $generator->startValueElement('name', $data->sessionName);
     $generator->endValueElement('name');
     $generator->startValueElement('identifier', $data->sessionId);
     $generator->endValueElement('identifier');
     $generator->startValueElement('csrfToken', $data->csrfToken);
     $generator->endValueElement('csrfToken');
     $generator->startObjectElement('User', 'User');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadUser', array('userId' => $data->user->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('User');
     $generator->endObjectElement('Session');
 }
 /**
  * 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\CountryList $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('CountryList');
     $visitor->setHeader('Content-Type', $generator->getMediaType('CountryList'));
     $visitor->setHeader('Accept-Patch', false);
     $generator->startList('Country');
     foreach ($data->countries as $country) {
         $generator->startObjectElement('Country', 'Country');
         $generator->startAttribute('id', $country['Alpha2']);
         $generator->endAttribute('id');
         $generator->startValueElement('name', $country['Name']);
         $generator->endValueElement('name');
         $generator->startValueElement('Alpha2', $country['Alpha2']);
         $generator->endValueElement('Alpha2');
         $generator->startValueElement('Alpha3', $country['Alpha3']);
         $generator->endValueElement('Alpha3');
         $generator->startValueElement('IDC', $country['IDC']);
         $generator->endValueElement('IDC');
         $generator->endObjectElement('Country');
     }
     $generator->endList('Country');
     $generator->endObjectElement('CountryList');
 }
Example #29
0
 /**
  * @param Visitor $visitor
  * @param Generator $generator
  * @param \eZ\Publish\Core\REST\Client\Values\ViewInput $data
  * @throws Exceptions\InvalidArgumentException
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('ViewInput');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     if ($data->locationQuery !== null) {
         $queryElementName = 'locationQuery';
     } elseif ($data->contentQuery !== null) {
         $queryElementName = 'contentQuery';
     } else {
         throw new Exceptions\InvalidArgumentException("ViewInput Query", "No content nor location query found in ViewInput");
     }
     $visitor->visitValueObject($data->{$queryElementName});
     $generator->endObjectElement('ViewInput');
 }
Example #30
0
 /**
  * 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\User\Role $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     $generator->startObjectElement('Role');
     $visitor->setHeader('Content-Type', $generator->getMediaType('Role'));
     $visitor->setHeader('Accept-Patch', $generator->getMediaType('RoleInput'));
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadRole', array('roleId' => $data->id)));
     $generator->endAttribute('href');
     $generator->startValueElement('identifier', $data->identifier);
     $generator->endValueElement('identifier');
     $generator->startObjectElement('Policies', 'PolicyList');
     $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadPolicies', array('roleId' => $data->id)));
     $generator->endAttribute('href');
     $generator->endObjectElement('Policies');
     $generator->endObjectElement('Role');
 }