diff --git a/core/modules/node/lib/Drupal/node/NodeTypeFormController.php b/core/modules/node/lib/Drupal/node/NodeTypeFormController.php index ec465e1..76786d1 100644 --- a/core/modules/node/lib/Drupal/node/NodeTypeFormController.php +++ b/core/modules/node/lib/Drupal/node/NodeTypeFormController.php @@ -31,13 +31,6 @@ public function form(array $form, array &$form_state) { } $node_settings = $type->getModuleSettings('node'); - // Ensure default settings. - $node_settings += array( - 'options' => array('status', 'promote'), - 'preview' => DRUPAL_OPTIONAL, - 'submitted' => TRUE, - ); - $form['name'] = array( '#title' => t('Name'), '#type' => 'textfield', diff --git a/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/NodeType.php b/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/NodeType.php index 464fbe0..650e8be 100644 --- a/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/NodeType.php +++ b/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/NodeType.php @@ -215,4 +215,21 @@ public static function postDelete(EntityStorageControllerInterface $storage_cont } } + /** + * {@inheritdoc} + */ + public static function preCreate(EntityStorageControllerInterface $storage_controller, array &$values) { + parent::preCreate($storage_controller, $values); + + // Ensure default values are set. + if (!isset($values['settings']['node'])) { + $values['settings']['node'] = array(); + } + $values['settings']['node'] += array( + 'options' => array('status', 'promote'), + 'preview' => DRUPAL_OPTIONAL, + 'submitted' => TRUE, + ); + } + } diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php index 90592b0..11cc69a 100644 --- a/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php +++ b/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php @@ -56,6 +56,8 @@ function testNodeCreation() { // Check that the node exists in the database. $node = $this->drupalGetNodeByTitle($edit["title"]); $this->assertTrue($node, 'Node found in database.'); + + $this->assertNoText(t('Submitted by !username on !datetime', array('!username' => $this->loggedInUser->getUsername(), '!datetime' => format_date($node->getCreatedTime())))); } /** diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php b/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php index 93eb3dd..bd2c476 100644 --- a/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php +++ b/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php @@ -27,7 +27,7 @@ function setUp() { // Create Basic page and Article node types. if ($this->profile != 'standard') { - $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page')); + $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page', 'settings' => array('node' => array('submitted' => FALSE)))); $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article')); } } diff --git a/core/modules/node/node.module b/core/modules/node/node.module index 5a6d53a..a0421d1 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -714,8 +714,7 @@ function template_preprocess_node(&$variables) { // Display post information only on certain node types. // Avoid loading the entire node type config entity here. - $submitted = Drupal::config('node.type.' . $node->bundle())->get('settings.node.submitted') ?: TRUE; - if ($submitted) { + if (Drupal::config('node.type.' . $node->bundle())->get('settings.node.submitted')) { $variables['display_submitted'] = TRUE; $variables['submitted'] = t('Submitted by !username on !datetime', array('!username' => $variables['name'], '!datetime' => $variables['date'])); if (theme_get_setting('features.node_user_picture')) { diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php index a99e3d0..60bc5b2 100644 --- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php +++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php @@ -285,6 +285,10 @@ protected function drupalCreateNode(array $settings = array()) { 'format' => filter_default_format(), ); + // If the specified node type does not exist, create it. + if (!$this->container->get('entity.query')->get('node_type')->condition('type', $settings['type'])->execute()) { + $this->drupalCreateContentType(array('type' => $settings['type'], 'name' => $this->randomString())); + } $node = entity_create('node', $settings); if (!empty($settings['revision'])) { $node->setNewRevision();