eZ\Publish\Core\Persistence\Legacy\Content\Location\Gateway\DoctrineDatabase::createLocationsFromNodeAssignments PHP Method

createLocationsFromNodeAssignments() public method

Convert existing node assignments into real locations.
public createLocationsFromNodeAssignments ( mixed $contentId, mixed $versionNo )
$contentId mixed
$versionNo mixed
    public function createLocationsFromNodeAssignments($contentId, $versionNo)
    {
        // select all node assignments with OP_CODE_CREATE (3) for this content
        $query = $this->handler->createSelectQuery();
        $query->select('*')->from($this->handler->quoteTable('eznode_assignment'))->where($query->expr->lAnd($query->expr->eq($this->handler->quoteColumn('contentobject_id'), $query->bindValue($contentId, null, \PDO::PARAM_INT)), $query->expr->eq($this->handler->quoteColumn('contentobject_version'), $query->bindValue($versionNo, null, \PDO::PARAM_INT)), $query->expr->eq($this->handler->quoteColumn('op_code'), $query->bindValue(self::NODE_ASSIGNMENT_OP_CODE_CREATE, null, \PDO::PARAM_INT))))->orderBy('id');
        $statement = $query->prepare();
        $statement->execute();
        // convert all these assignments to nodes
        while ($row = $statement->fetch(\PDO::FETCH_ASSOC)) {
            if ((bool) $row['is_main'] === true) {
                $mainLocationId = true;
            } else {
                $mainLocationId = $this->getMainNodeId($contentId);
            }
            $parentLocationData = $this->getBasicNodeData($row['parent_node']);
            $isInvisible = $row['is_hidden'] || $parentLocationData['is_hidden'] || $parentLocationData['is_invisible'];
            $this->create(new CreateStruct(array('contentId' => $row['contentobject_id'], 'contentVersion' => $row['contentobject_version'], 'mainLocationId' => $mainLocationId, 'remoteId' => $row['parent_remote_id'], 'sortField' => $row['sort_field'], 'sortOrder' => $row['sort_order'], 'priority' => $row['priority'], 'hidden' => $row['is_hidden'], 'invisible' => $isInvisible)), $parentLocationData);
            $this->updateNodeAssignment($row['contentobject_id'], $row['parent_node'], $row['parent_node'], self::NODE_ASSIGNMENT_OP_CODE_CREATE_NOP);
        }
    }