createNodeAssignment() abstract public méthode

Create an entry in the node assignment table.
abstract public createNodeAssignment ( eZ\Publish\SPI\Persistence\Content\Location\CreateStruct $createStruct, mixed $parentNodeId, integer $type = self::NODE_ASSIGNMENT_OP_CODE_CREATE_NOP )
$createStruct eZ\Publish\SPI\Persistence\Content\Location\CreateStruct
$parentNodeId mixed
$type integer
 /**
  * Creates a new location rooted at $location->parentId.
  *
  * @param \eZ\Publish\SPI\Persistence\Content\Location\CreateStruct $createStruct
  *
  * @return \eZ\Publish\SPI\Persistence\Content\Location
  */
 public function create(CreateStruct $createStruct)
 {
     $parentNodeData = $this->locationGateway->getBasicNodeData($createStruct->parentId);
     $locationStruct = $this->locationGateway->create($createStruct, $parentNodeData);
     $this->locationGateway->createNodeAssignment($createStruct, $parentNodeData['node_id'], LocationGateway::NODE_ASSIGNMENT_OP_CODE_CREATE_NOP);
     return $locationStruct;
 }
 /**
  * Create an entry in the node assignment table
  *
  * @param \eZ\Publish\SPI\Persistence\Content\Location\CreateStruct $createStruct
  * @param mixed $parentNodeId
  * @param int $type
  *
  * @return void
  */
 public function createNodeAssignment(CreateStruct $createStruct, $parentNodeId, $type = self::NODE_ASSIGNMENT_OP_CODE_CREATE_NOP)
 {
     try {
         return $this->innerGateway->createNodeAssignment($createStruct, $parentNodeId, $type);
     } catch (DBALException $e) {
         throw new RuntimeException('Database error', 0, $e);
     } catch (PDOException $e) {
         throw new RuntimeException('Database error', 0, $e);
     }
 }
Exemple #3
0
 /**
  * Creates a new Content entity in the storage engine.
  *
  * The values contained inside the $content will form the basis of stored
  * entity.
  *
  * Will contain always a complete list of fields.
  *
  * @param \eZ\Publish\SPI\Persistence\Content\CreateStruct $struct Content creation struct.
  * @param mixed $versionNo Used by self::copy() to maintain version numbers
  *
  * @return \eZ\Publish\SPI\Persistence\Content Content value object
  */
 protected function internalCreate(CreateStruct $struct, $versionNo = 1)
 {
     $content = new Content();
     $content->fields = $struct->fields;
     $content->versionInfo = $this->mapper->createVersionInfoFromCreateStruct($struct, $versionNo);
     $content->versionInfo->contentInfo->id = $this->contentGateway->insertContentObject($struct, $versionNo);
     $content->versionInfo->id = $this->contentGateway->insertVersion($content->versionInfo, $struct->fields);
     $contentType = $this->contentTypeHandler->load($struct->typeId);
     $this->fieldHandler->createNewFields($content, $contentType);
     // Create node assignments
     foreach ($struct->locations as $location) {
         $location->contentId = $content->versionInfo->contentInfo->id;
         $location->contentVersion = $content->versionInfo->versionNo;
         $this->locationGateway->createNodeAssignment($location, $location->parentId, LocationGateway::NODE_ASSIGNMENT_OP_CODE_CREATE);
     }
     // Create names
     foreach ($content->versionInfo->names as $language => $name) {
         $this->contentGateway->setName($content->versionInfo->contentInfo->id, $content->versionInfo->versionNo, $name, $language);
     }
     return $content;
 }