diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php index d54f7c7..d6ef1d3 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php @@ -820,7 +820,7 @@ public function isArchived() { $status_key = $this->getEntityType()->getKey('status'); if ($this->hasField($status_key)) { $status = $this->$status_key->getValue(); - if ($status[0]['value'] == -1) { + if ($status[0]['state'] == 3) { return TRUE; } } @@ -833,7 +833,7 @@ public function isArchived() { public function setArchived($archived) { $status_key = $this->getEntityType()->getKey('status'); if ($this->hasField($status_key) && $archived) { - $this->set($status_key, -1); + $this->set($status_key, 3); } } diff --git a/core/lib/Drupal/Core/Entity/ContentEntityInterface.php b/core/lib/Drupal/Core/Entity/ContentEntityInterface.php index 8aba3b7..e257066 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityInterface.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityInterface.php @@ -55,7 +55,7 @@ public function isRevisionTranslationAffected(); /** * Checks whether the entity is archived. - * + * * @return bool * True is the entity is archived, FALSE otherwise. */ diff --git a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php index 5f20c3f..b8fd1fa 100644 --- a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php +++ b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php @@ -201,7 +201,12 @@ public function getFieldColumnName(FieldStorageDefinitionInterface $storage_defi $field_name = $storage_definition->getName(); if ($this->allowsSharedTableStorage($storage_definition)) { - $column_name = count($storage_definition->getColumns()) == 1 ? $field_name : $field_name . '__' . $property_name; + if (count($storage_definition->getColumns()) == 1 || $property_name == 'value') { + $column_name = $field_name; + } + else { + $column_name = $field_name . '__' . $property_name; + } } elseif ($this->requiresDedicatedTableStorage($storage_definition)) { if ($property_name == TableMappingInterface::DELTA) { diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php index dfc3770..d4d96fd 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php @@ -1,6 +1,8 @@ 'int', + 'unsigned' => $field_definition->getSetting('unsigned'), + 'size' => $field_definition->getSetting('size'), + ]; + return $schema; + } + /** * @inheritDoc */ - public function __get($name) { - $value = parent::__get($name); - return $value; + public function preSave() { + parent::preSave(); + + $this->values['state'] = 0; + if ($this->values['value'] == 1) { + $this->values['state'] = 1; + } } + + public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) { + $properties = parent::propertyDefinitions($field_definition); + + $properties['state'] = DataDefinition::create('integer') + ->setLabel(t('Status state')) + ->setRequired(TRUE); + + return $properties; + } }