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