diff --git a/core/modules/book/config/install/node.type.book.yml b/core/modules/book/config/install/node.type.book.yml
index e61498f..172eaaf 100644
--- a/core/modules/book/config/install/node.type.book.yml
+++ b/core/modules/book/config/install/node.type.book.yml
@@ -2,11 +2,8 @@ type: book
name: 'Book page'
description: 'Books have a built-in hierarchical navigation. Use for handbooks or tutorials.'
help: ''
-settings:
- node:
- preview: 1
- options:
- revision: false
- submitted: true
+new_revision: false
+display_submitted: true
+preview_mode: 1
status: true
langcode: en
diff --git a/core/modules/forum/config/install/node.type.forum.yml b/core/modules/forum/config/install/node.type.forum.yml
index df4ce2e..00d7e5a 100644
--- a/core/modules/forum/config/install/node.type.forum.yml
+++ b/core/modules/forum/config/install/node.type.forum.yml
@@ -2,11 +2,8 @@ type: forum
name: 'Forum topic'
description: 'A forum topic starts a new discussion thread within a forum.'
help: ''
-settings:
- node:
- preview: 1
- options:
- revision: false
- submitted: true
+new_revision: false
+show_submitted: true
+preview_mode: 1
status: true
langcode: en
diff --git a/core/modules/menu_ui/config/schema/menu_ui.schema.yml b/core/modules/menu_ui/config/schema/menu_ui.schema.yml
index 7625f0d..7855ba3 100644
--- a/core/modules/menu_ui/config/schema/menu_ui.schema.yml
+++ b/core/modules/menu_ui/config/schema/menu_ui.schema.yml
@@ -14,7 +14,7 @@ menu_ui.settings:
type: boolean
label: 'Override parent selector'
-menu.entity.node.*:
+node_type.third_party.menu_ui:
type: mapping
label: 'Per-content type menu settings'
mapping:
diff --git a/core/modules/menu_ui/menu_ui.module b/core/modules/menu_ui/menu_ui.module
index 820887a..1dfd3ff 100644
--- a/core/modules/menu_ui/menu_ui.module
+++ b/core/modules/menu_ui/menu_ui.module
@@ -166,29 +166,6 @@ function menu_ui_node_update(EntityInterface $node) {
}
/**
- * Implements hook_ENTITY_TYPE_insert() for node_type entities.
- */
-function menu_ui_node_type_insert(NodeTypeInterface $type) {
- if ($type->isSyncing()) {
- return;
- }
- \Drupal::config('menu.entity.node.' . $type->id())
- ->set('available_menus', array('main'))
- ->set('parent', 'main:')
- ->save();
-}
-
-/**
- * Implements hook_ENTITY_TYPE_delete() for node_type entities.
- */
-function menu_ui_node_type_delete(NodeTypeInterface $type) {
- if ($type->isSyncing()) {
- return;
- }
- \Drupal::config('menu.entity.node.' . $type->id())->delete();
-}
-
-/**
* Helper for hook_ENTITY_TYPE_insert() and hook_ENTITY_TYPE_update() for nodes.
*/
function menu_ui_node_save(EntityInterface $node) {
@@ -251,13 +228,14 @@ function menu_ui_node_predelete(EntityInterface $node) {
function menu_ui_node_prepare_form(NodeInterface $node, $operation, FormStateInterface $form_state) {
if (empty($form_state['menu_link_definition'])) {
// Prepare the node for the edit form so that $node->menu always exists.
- $node_type_config = \Drupal::config('menu.entity.node.' . $node->getType());
- $menu_name = strtok($node_type_config->get('parent'), ':');
+ /** @var \Drupal\node\NodeTypeInterface $node_type */
+ $node_type = $node->type->entity;
+ $menu_name = strtok($node_type->getThirdPartySetting('menu_ui', 'parent', 'main:'), ':');
$definition = FALSE;
if ($node->id()) {
$id = FALSE;
// Give priority to the default menu
- $type_menus = $node_type_config->get('available_menus');
+ $type_menus = $node_type->getThirdPartySetting('menu_ui', 'available_menus', array('main'));
if (in_array($menu_name, $type_menus)) {
$query = \Drupal::entityQuery('menu_link_content')
->condition('route_name', 'entity.node.canonical')
@@ -323,11 +301,12 @@ function menu_ui_form_node_form_alter(&$form, FormStateInterface $form_state) {
// @todo This must be handled in a #process handler.
$node = $form_state->getFormObject()->getEntity();
$definition = $form_state['menu_link_definition'];
- $type = $node->getType();
+ /** @var \Drupal\node\NodeTypeInterface $node_type */
+ $node_type = $node->type->entity;
/** @var \Drupal\Core\Menu\MenuParentFormSelectorInterface $menu_parent_selector */
$menu_parent_selector = \Drupal::service('menu.parent_form_selector');
$menu_names = menu_ui_get_menus();
- $type_menus = \Drupal::config("menu.entity.node.$type")->get('available_menus');
+ $type_menus = $node_type->getThirdPartySetting('menu_ui', 'available_menus', array('main'));
$available_menus = array();
foreach ($type_menus as $menu) {
$available_menus[$menu] = $menu_names[$menu];
@@ -336,7 +315,7 @@ function menu_ui_form_node_form_alter(&$form, FormStateInterface $form_state) {
$default = $definition['menu_name'] . ':' . $definition['parent'];
}
else {
- $default = \Drupal::config('menu.entity.node.'.$type)->get('parent');
+ $default = $node_type->getThirdPartySetting('menu_ui', 'parent', 'main:');
}
$parent_element = $menu_parent_selector->parentSelectElement($default, $definition['id'], $available_menus);
// If no possible parent menu items were found, there is nothing to display.
@@ -446,16 +425,8 @@ function menu_ui_form_node_type_form_alter(&$form, FormStateInterface $form_stat
/** @var \Drupal\Core\Menu\MenuParentFormSelectorInterface $menu_parent_selector */
$menu_parent_selector = \Drupal::service('menu.parent_form_selector');
$menu_options = menu_ui_get_menus();
+ /** @var \Drupal\node\NodeTypeInterface $type */
$type = $form_state->getFormObject()->getEntity();
- if ($type->id()) {
- $config_values = \Drupal::config('menu.entity.node.' . $type->id())->get();
- }
- else {
- $config_values = array(
- 'available_menus' => array('main'),
- 'parent' => 'main:',
- );
- }
$form['menu'] = array(
'#type' => 'details',
'#title' => t('Menu settings'),
@@ -467,7 +438,7 @@ function menu_ui_form_node_type_form_alter(&$form, FormStateInterface $form_stat
$form['menu']['menu_options'] = array(
'#type' => 'checkboxes',
'#title' => t('Available menus'),
- '#default_value' => $config_values['available_menus'],
+ '#default_value' => $type->getThirdPartySetting('menu_ui', 'available_menus', array('main')),
'#options' => $menu_options,
'#description' => t('The menus available to place links in for this content type.'),
);
@@ -480,14 +451,14 @@ function menu_ui_form_node_type_form_alter(&$form, FormStateInterface $form_stat
$form['menu']['menu_parent'] = array(
'#type' => 'select',
'#title' => t('Default parent item'),
- '#default_value' => $config_values['parent'],
+ '#default_value' => $type->getThirdPartySetting('menu_ui', 'parent', 'main:'),
'#options' => $options,
'#description' => t('Choose the menu item to be the default parent for a new link in the content authoring form.'),
'#attributes' => array('class' => array('menu-title-select')),
);
$form['actions']['submit']['#validate'][] = 'menu_ui_form_node_type_form_validate';
- $form['actions']['submit']['#submit'][] = 'menu_ui_form_node_type_form_submit';
+ $form['#entity_builders'][] = 'menu_ui_form_node_type_form_builder';
}
/**
@@ -511,16 +482,13 @@ function menu_ui_form_node_type_form_validate(&$form, FormStateInterface $form_s
}
/**
- * Submit handler for forms with menu options.
+ * Entity builder for the node type form with menu options.
*
* @see menu_ui_form_node_type_form_alter().
*/
-function menu_ui_form_node_type_form_submit(&$form, FormStateInterface $form_state) {
- $type = $form_state->getFormObject()->getEntity();
- \Drupal::config('menu.entity.node.' . $type->id())
- ->set('available_menus', array_values(array_filter($form_state->getValue('menu_options'))))
- ->set('parent', $form_state->getValue('menu_parent'))
- ->save();
+function menu_ui_form_node_type_form_builder($entity_type, NodeTypeInterface $type, &$form, FormStateInterface $form_state) {
+ $type->setThirdPartySetting('menu_ui', 'available_menus', array_values(array_filter($form_state->getValue('menu_options'))));
+ $type->setThirdPartySetting('menu_ui', 'parent', $form_state->getValue('menu_parent'));
}
/**
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_type.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_type.yml
index 609f391..e24c22e 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_type.yml
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_type.yml
@@ -14,8 +14,9 @@ process:
description: description
help: help
title_label: title_label
- 'settings/node/preview': 'constants/preview'
- 'settings/node/submitted': submitted
+ 'preview_mode': 'constants/preview'
+ 'display_submitted': submitted
+ 'new_revision': 'options/revision'
'settings/node/options': options
create_body: has_body
create_body_label: body_label
diff --git a/core/modules/node/config/schema/node.schema.yml b/core/modules/node/config/schema/node.schema.yml
index 428ffc7..0680b57 100644
--- a/core/modules/node/config/schema/node.schema.yml
+++ b/core/modules/node/config/schema/node.schema.yml
@@ -27,39 +27,20 @@ node.type.*:
help:
type: text
label: 'Explanation or submission guidelines'
- settings:
- type: mapping
- label: 'Settings'
- mapping:
- node:
- type: node.settings.node
-
-node.settings.node:
- type: mapping
- label: 'Content type settings'
- mapping:
- preview:
+ new_revision:
+ type: boolean
+ label: 'Whether a new revision should be created by default'
+ preview_mode:
type: integer
label: 'Preview before submitting'
- options:
- type: mapping
- label: 'Publishing options'
- mapping:
- status:
- type: boolean
- label: 'Published'
- promote:
- type: boolean
- label: 'Promoted to front page'
- sticky:
- type: boolean
- label: 'Sticky at top of lists'
- revision:
- type: boolean
- label: 'Create new revision'
- submitted:
+ display_submitted:
type: boolean
label: 'Display setting for author and date Submitted by post information'
+ third_party_settings:
+ type: sequence
+ label: 'Third party settings'
+ sequence:
+ - type: node_type.third_party.[%key]
# Plugin \Drupal\node\Plugin\Search\NodeSearch
search.plugin.node_search:
diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php
index 22f66d4..89d5540 100644
--- a/core/modules/node/src/Entity/NodeType.php
+++ b/core/modules/node/src/Entity/NodeType.php
@@ -9,6 +9,7 @@
use Drupal\Component\Utility\NestedArray;
use Drupal\Core\Config\Entity\ConfigEntityBundleBase;
+use Drupal\Core\Config\Entity\ThirdPartySettingsTrait;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\node\NodeTypeInterface;
@@ -41,6 +42,7 @@
* )
*/
class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
+ use ThirdPartySettingsTrait;
/**
* The machine name of this node type.
@@ -75,6 +77,27 @@ class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
public $help;
/**
+ * Default value of the 'Create new revision' checkbox of this node type.
+ *
+ * @var bool
+ */
+ protected $new_revision = FALSE;
+
+ /**
+ * The preview mode.
+ *
+ * @var int
+ */
+ protected $preview_mode = DRUPAL_OPTIONAL;
+
+ /**
+ * Display setting for author and date Submitted by post information.
+ *
+ * @var bool
+ */
+ protected $display_submitted = TRUE;
+
+ /**
* Indicates whether a Body field should be created for this node type.
*
* This property affects entity creation only. It allows default configuration
@@ -97,15 +120,6 @@ class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
protected $create_body_label = 'Body';
/**
- * Module-specific settings for this node type, keyed by module name.
- *
- * @var array
- *
- * @todo Pluginify.
- */
- public $settings = array();
-
- /**
* {@inheritdoc}
*/
public function id() {
@@ -115,16 +129,6 @@ public function id() {
/**
* {@inheritdoc}
*/
- public function getModuleSettings($module) {
- if (isset($this->settings[$module]) && is_array($this->settings[$module])) {
- return $this->settings[$module];
- }
- return array();
- }
-
- /**
- * {@inheritdoc}
- */
public function isLocked() {
$locked = \Drupal::state()->get('node.type.locked');
return isset($locked[$this->id()]) ? $locked[$this->id()] : FALSE;
@@ -133,6 +137,48 @@ public function isLocked() {
/**
* {@inheritdoc}
*/
+ public function isNewRevision() {
+ return $this->new_revision;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function setNewRevision($new_revision) {
+ $this->new_revision = $new_revision;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function displaySubmitted() {
+ return $this->display_submitted;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function setDisplaySubmitted($display_submtited) {
+ $this->display_submitted = $display_submtited;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getPreviewMode() {
+ return $this->preview_mode;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function setPreviewMode($preview_mode) {
+ $this->preview_mode = $preview_mode;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
public function postSave(EntityStorageInterface $storage, $update = TRUE) {
parent::postSave($storage, $update);
@@ -173,23 +219,4 @@ public static function postDelete(EntityStorageInterface $storage, array $entiti
$storage->resetCache(array_keys($entities));
}
- /**
- * {@inheritdoc}
- */
- public static function preCreate(EntityStorageInterface $storage, array &$values) {
- parent::preCreate($storage, $values);
-
- // Ensure default values are set.
- if (!isset($values['settings']['node'])) {
- $values['settings']['node'] = array();
- }
- $values['settings']['node'] = NestedArray::mergeDeep(array(
- 'options' => array(
- 'revision' => FALSE,
- ),
- 'preview' => DRUPAL_OPTIONAL,
- 'submitted' => TRUE,
- ), $values['settings']['node']);
- }
-
}
diff --git a/core/modules/node/src/NodeForm.php b/core/modules/node/src/NodeForm.php
index 5bf0506..b521bdb 100644
--- a/core/modules/node/src/NodeForm.php
+++ b/core/modules/node/src/NodeForm.php
@@ -23,13 +23,6 @@
class NodeForm extends ContentEntityForm {
/**
- * Default settings for this content/node type.
- *
- * @var array
- */
- protected $settings;
-
- /**
* The tempstore factory.
*
* @var \Drupal\user\TempStoreFactory
@@ -65,9 +58,6 @@ public static function create(ContainerInterface $container) {
protected function prepareEntity() {
/** @var \Drupal\node\NodeInterface $node */
$node = $this->entity;
- // Set up default values, if required.
- $type = entity_load('node_type', $node->bundle());
- $this->settings = $type->getModuleSettings('node');
if (!$node->isNew()) {
$node->date = format_date($node->getCreatedTime(), 'custom', 'Y-m-d H:i:s O');
@@ -156,7 +146,7 @@ public function form(array $form, FormStateInterface $form_state) {
$form['revision'] = array(
'#type' => 'checkbox',
'#title' => t('Create new revision'),
- '#default_value' => !empty($this->settings['options']['revision']),
+ '#default_value' => $node->type->entity->isNewRevision(),
'#access' => $node->isNewRevision() || $current_user->hasPermission('administer nodes'),
'#group' => 'revision_information',
);
@@ -258,7 +248,7 @@ public function form(array $form, FormStateInterface $form_state) {
protected function actions(array $form, FormStateInterface $form_state) {
$element = parent::actions($form, $form_state);
$node = $this->entity;
- $preview_mode = $this->settings['preview'];
+ $preview_mode = $node->type->entity->getPreviewMode();
$element['submit']['#access'] = $preview_mode != DRUPAL_REQUIRED || (!form_get_errors($form_state) && isset($form_state['node_preview']));
diff --git a/core/modules/node/src/NodeTypeForm.php b/core/modules/node/src/NodeTypeForm.php
index 4088154..827e7f8 100644
--- a/core/modules/node/src/NodeTypeForm.php
+++ b/core/modules/node/src/NodeTypeForm.php
@@ -68,7 +68,6 @@ public function form(array $form, FormStateInterface $form_state) {
$node = $this->entityManager->getStorage('node')->create(array('type' => $type->id()));
}
- $node_settings = $type->getModuleSettings('node');
$form['name'] = array(
'#title' => t('Name'),
'#type' => 'textfield',
@@ -122,7 +121,7 @@ public function form(array $form, FormStateInterface $form_state) {
'#type' => 'radios',
'#title' => t('Preview before submitting'),
'#parents' => array('settings', 'node', 'preview'),
- '#default_value' => $node_settings['preview'],
+ '#default_value' => $type->getPreviewMode(),
'#options' => array(
DRUPAL_DISABLED => t('Disabled'),
DRUPAL_OPTIONAL => t('Optional'),
@@ -144,7 +143,7 @@ public function form(array $form, FormStateInterface $form_state) {
'status' => $node->status->value,
'promote' => $node->promote->value,
'sticky' => $node->sticky->value,
- 'revision' => $type->settings['node']['options']['revision'],
+ 'revision' => $type->isNewRevision(),
);
// Prepare workflow options to be used for 'checkboxes' form element.
$keys = array_keys(array_filter($workflow_options));
@@ -186,7 +185,7 @@ public function form(array $form, FormStateInterface $form_state) {
'#type' => 'checkbox',
'#title' => t('Display author and date information.'),
'#parents' => array('settings', 'node', 'submitted'),
- '#default_value' => $node_settings['submitted'],
+ '#default_value' => $type->displaySubmitted(),
'#description' => t('Author username and publish date will be displayed.'),
);
return $form;
@@ -220,7 +219,7 @@ public function validate(array $form, FormStateInterface $form_state) {
*/
public function save(array $form, FormStateInterface $form_state) {
$type = $this->entity;
- $type->settings['node']['options']['revision'] = $form_state['values']['options']['revision'];
+ $type->setNewRevision($form_state->getValue(array('options', 'revision')));
$type->type = trim($type->id());
$type->name = trim($type->name);
diff --git a/core/modules/node/src/NodeTypeInterface.php b/core/modules/node/src/NodeTypeInterface.php
index d828feb..d113f87 100644
--- a/core/modules/node/src/NodeTypeInterface.php
+++ b/core/modules/node/src/NodeTypeInterface.php
@@ -8,23 +8,12 @@
namespace Drupal\node;
use Drupal\Core\Config\Entity\ConfigEntityInterface;
+use Drupal\Core\Config\Entity\ThirdPartySettingsInterface;
/**
* Provides an interface defining a node type entity.
*/
-interface NodeTypeInterface extends ConfigEntityInterface {
-
- /**
- * Returns the configured node type settings of a given module, if any.
- *
- * @param string $module
- * The name of the module whose settings to return.
- *
- * @return array
- * An associative array containing the module's settings for the node type.
- * Note that this can be empty, and default values do not necessarily exist.
- */
- public function getModuleSettings($module);
+interface NodeTypeInterface extends ConfigEntityInterface, ThirdPartySettingsInterface {
/**
* Determines whether the node type is locked.
@@ -34,4 +23,52 @@ public function getModuleSettings($module);
*/
public function isLocked();
+ /**
+ * Returns whether a new revision should be created by default.
+ *
+ * @return bool
+ * TRUE if a new revision should be created by default.
+ */
+ public function isNewRevision();
+
+ /**
+ * Set whether a new revision should be created by default.
+ *
+ * @param bool $new_revision_
+ * TRUE if a new revision should be created by default.
+ */
+ public function setNewRevision($new_revision);
+
+ /**
+ * Returns whether 'Submitted by' information should be shown.
+ *
+ * @return bool
+ * TRUE if the submitted by information should be shown.
+ */
+ public function displaySubmitted();
+
+ /**
+ * Set whether 'Submitted by' information should be shown.
+ *
+ * @param bool $display_submitted
+ * TRUE if the submitted by information should be shown.
+ */
+ public function setDisplaySubmitted($display_submtited);
+
+ /**
+ * Returns the preview mode.
+ *
+ * @return int
+ * DRUPAL_DISABLED, DRUPAL_OPTIONAL or DRUPAL_REQUIRED.
+ */
+ public function getPreviewMode();
+
+ /**
+ * Sets the preview mode.
+ *
+ * @param int $preview_mode
+ * DRUPAL_DISABLED, DRUPAL_OPTIONAL or DRUPAL_REQUIRED.
+ */
+ public function setPreviewMode($preview_mode);
+
}
diff --git a/core/modules/node/src/Tests/NodeCreationTest.php b/core/modules/node/src/Tests/NodeCreationTest.php
index 53b32b2..a895610 100644
--- a/core/modules/node/src/Tests/NodeCreationTest.php
+++ b/core/modules/node/src/Tests/NodeCreationTest.php
@@ -63,7 +63,7 @@ function testNodeCreation() {
// Change the node type setting to show submitted by information.
$node_type = entity_load('node_type', 'page');
- $node_type->settings['node']['submitted'] = TRUE;
+ $node_type->setDisplaySubmitted(TRUE);
$node_type->save();
$this->drupalGet('node/' . $node->id());
diff --git a/core/modules/node/src/Tests/NodeRevisionsUiTest.php b/core/modules/node/src/Tests/NodeRevisionsUiTest.php
index f2bc337..c9a4a36 100644
--- a/core/modules/node/src/Tests/NodeRevisionsUiTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsUiTest.php
@@ -39,7 +39,7 @@ function testNodeFormSaveWithoutRevision() {
// Set page revision setting 'create new revision'. This will mean new
// revisions are created by default when the node is edited.
$type = entity_load('node_type', 'page');
- $type->settings['node']['options']['revision'] = TRUE;
+ $type->setNewRevision(TRUE);
$type->save();
// Create the node.
diff --git a/core/modules/node/src/Tests/NodeTestBase.php b/core/modules/node/src/Tests/NodeTestBase.php
index cc0f8f8..764d0a8 100644
--- a/core/modules/node/src/Tests/NodeTestBase.php
+++ b/core/modules/node/src/Tests/NodeTestBase.php
@@ -34,13 +34,11 @@ protected function setUp() {
// Create Basic page and Article node types.
if ($this->profile != 'standard') {
- $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page', 'settings' => array(
- // Set proper default options for the page content type.
- 'node' => array(
- 'options' => array('promote' => FALSE),
- 'submitted' => FALSE,
- ),
- )));
+ $this->drupalCreateContentType(array(
+ 'type' => 'page',
+ 'name' => 'Basic page',
+ 'display_submitted' => FALSE,
+ ));
$this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
}
$this->accessHandler = \Drupal::entityManager()->getAccessControlHandler('node');
diff --git a/core/modules/node/src/Tests/PagePreviewTest.php b/core/modules/node/src/Tests/PagePreviewTest.php
index 708fc1a..071602f 100644
--- a/core/modules/node/src/Tests/PagePreviewTest.php
+++ b/core/modules/node/src/Tests/PagePreviewTest.php
@@ -8,6 +8,7 @@
namespace Drupal\node\Tests;
use Drupal\Core\Language\LanguageInterface;
+use Drupal\node\Entity\NodeType;
/**
* Tests the node entity preview functionality.
@@ -202,7 +203,9 @@ function testPagePreviewWithRevisions() {
$body_key = 'body[0][value]';
$term_key = $this->field_name;
// Force revision on "Basic page" content.
- $this->container->get('config.factory')->get('node.type.page')->set('settings.node.options', array('status', 'revision'))->save();
+ $node_type = NodeType::load('page');
+ $node_type->setNewRevision(TRUE);
+ $node_type->save();
// Fill in node creation form and preview node.
$edit = array();
diff --git a/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml b/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml
index 2003aad..e25f414 100644
--- a/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml
+++ b/core/modules/node/tests/modules/node_test_config/config/install/node.type.default.yml
@@ -2,11 +2,8 @@ type: default
name: Default
description: 'Default description.'
help: ''
-settings:
- node:
- preview: 1
- options:
- revision: false
- submitted: true
+new_revision: false
+show_submitted: true
+preview_mode: 1
status: true
langcode: en
diff --git a/core/modules/node/tests/modules/node_test_config/staging/node.type.import.yml b/core/modules/node/tests/modules/node_test_config/staging/node.type.import.yml
index 9bab192..8050a4e 100644
--- a/core/modules/node/tests/modules/node_test_config/staging/node.type.import.yml
+++ b/core/modules/node/tests/modules/node_test_config/staging/node.type.import.yml
@@ -2,11 +2,8 @@ type: import
name: Import
description: 'Import description.'
help: ''
-settings:
- node:
- preview: 1
- options:
- revision: false
- submitted: true
+new_revision: false
+show_submitted: true
+preview_mode: 1
status: true
langcode: en
diff --git a/core/modules/quickedit/src/Form/QuickEditFieldForm.php b/core/modules/quickedit/src/Form/QuickEditFieldForm.php
index 3b4a5ee..1d7ae14 100644
--- a/core/modules/quickedit/src/Form/QuickEditFieldForm.php
+++ b/core/modules/quickedit/src/Form/QuickEditFieldForm.php
@@ -121,9 +121,8 @@ protected function init(FormStateInterface $form_state, EntityInterface $entity,
// @todo Rather than special-casing $node->revision, invoke prepareEdit()
// once http://drupal.org/node/1863258 lands.
if ($entity->getEntityTypeId() == 'node') {
- $node_type_settings = $this->nodeTypeStorage->load($entity->bundle())->getModuleSettings('node');
- $options = (isset($node_type_settings['options'])) ? $node_type_settings['options'] : array();
- $entity->setNewRevision(!empty($options['revision']));
+ $node_type = $this->nodeTypeStorage->load($entity->bundle());
+ $entity->setNewRevision($node_type->isNewRevision());
$entity->revision_log = NULL;
}
diff --git a/core/profiles/standard/config/install/node.type.article.yml b/core/profiles/standard/config/install/node.type.article.yml
index 6f4f302..271bf61 100644
--- a/core/profiles/standard/config/install/node.type.article.yml
+++ b/core/profiles/standard/config/install/node.type.article.yml
@@ -2,11 +2,8 @@ type: article
name: Article
description: 'Use articles for time-sensitive content like news, press releases or blog posts.'
help: ''
-settings:
- node:
- preview: 1
- options:
- revision: false
- submitted: true
+new_revision: false
+preview_mode: 1
+show_submitted: true
status: true
langcode: en
diff --git a/core/profiles/standard/config/install/node.type.page.yml b/core/profiles/standard/config/install/node.type.page.yml
index 61ae323..f9b4353 100644
--- a/core/profiles/standard/config/install/node.type.page.yml
+++ b/core/profiles/standard/config/install/node.type.page.yml
@@ -2,11 +2,8 @@ type: page
name: 'Basic page'
description: 'Use basic pages for your static content, such as an ''About us'' page.'
help: ''
-settings:
- node:
- preview: 1
- options:
- revision: false
- submitted: false
+new_revision: false
+preview_mode: 1
+display_submitted: false
status: true
langcode: en