/** * Inserts a $fieldDefinition for $typeId. * * @param mixed $typeId * @param int $status * @param \eZ\Publish\SPI\Persistence\Content\Type\FieldDefinition $fieldDefinition * @param \eZ\Publish\Core\Persistence\Legacy\Content\StorageFieldDefinition $storageFieldDef * * @return mixed Field definition ID */ public function insertFieldDefinition($typeId, $status, FieldDefinition $fieldDefinition, StorageFieldDefinition $storageFieldDef) { $q = $this->dbHandler->createInsertQuery(); $q->insertInto($this->dbHandler->quoteTable('ezcontentclass_attribute')); $q->set($this->dbHandler->quoteColumn('id'), isset($fieldDefinition->id) ? $q->bindValue($fieldDefinition->id, null, \PDO::PARAM_INT) : $this->dbHandler->getAutoIncrementValue('ezcontentclass_attribute', 'id'))->set($this->dbHandler->quoteColumn('contentclass_id'), $q->bindValue($typeId, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('version'), $q->bindValue($status, null, \PDO::PARAM_INT)); $this->setCommonFieldColumns($q, $fieldDefinition, $storageFieldDef); $q->prepare()->execute(); if (!isset($fieldDefinition->id)) { return $this->dbHandler->lastInsertId($this->dbHandler->getSequenceName('ezcontentclass_attribute', 'id')); } return $fieldDefinition->id; }