reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php @@ -1,86 +0,0 @@ - 60, - 'placeholder' => '', - ) + parent::defaultSettings(); - } - - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, array &$form_state) { - $element['size'] = array( - '#type' => 'number', - '#title' => t('Size of textfield'), - '#default_value' => $this->getSetting('size'), - '#required' => TRUE, - '#min' => 1, - ); - $element['placeholder'] = array( - '#type' => 'textfield', - '#title' => t('Placeholder'), - '#default_value' => $this->getSetting('placeholder'), - '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'), - ); - return $element; - } - - /** - * {@inheritdoc} - */ - public function settingsSummary() { - $summary = array(); - - $summary[] = t('URL field size: !size', array('!size' => $this->getSetting('size'))); - $placeholder = $this->getSetting('placeholder'); - if (!empty($placeholder)) { - $summary[] = t('Placeholder: @placeholder', array('@placeholder' => $placeholder)); - } - - return $summary; - } - - /** - * {@inheritdoc} - */ - public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, array &$form_state) { - $element['value'] = $element + array( - '#type' => 'url', - '#default_value' => isset($items[$delta]->value) ? $items[$delta]->value : NULL, - '#size' => $this->getSetting('size'), - '#placeholder' => $this->getSetting('placeholder'), - '#maxlength' => $this->getFieldSetting('max_length'), - ); - - return $element; - } - -} diff -u b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php --- b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php +++ b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php @@ -149,8 +149,7 @@ ->setDisplayOptions('form', array( 'type' => 'string', 'weight' => -5, - )) - ->setDisplayConfigurable('form', TRUE); + )); $fields['langcode'] = FieldDefinition::create('language') ->setLabel(t('Language code')) @@ -160,12 +159,11 @@ ->setLabel(t('URL')) ->setDescription(t('The URL to the feed.')) ->setRequired(TRUE) - ->setSetting('max_length', 100) + ->setSetting('max_length', NULL) ->setDisplayOptions('form', array( 'type' => 'uri', 'weight' => -4, - )) - ->setDisplayConfigurable('form', TRUE); + )); $fields['refresh'] = FieldDefinition::create('integer') ->setLabel(t('Refresh')) diff -u b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorTestBase.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorTestBase.php --- b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorTestBase.php +++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/AggregatorTestBase.php @@ -56,7 +56,7 @@ $this->drupalPostForm('aggregator/sources/add', $edit, t('Save')); $this->assertRaw(t('The feed %name has been added.', array('%name' => $edit['title[0][value]'])), format_string('The feed !name has been added.', array('!name' => $edit['title[0][value]']))); - $fid = db_query("SELECT fid FROM {aggregator_feed} WHERE title = :title AND url = :url", array(':title' => $edit['title[0][value]'], ':url' => $edit['url']))->fetchField(); + $fid = db_query("SELECT fid FROM {aggregator_feed} WHERE title = :title AND url = :url", array(':title' => $edit['title[0][value]'], ':url' => $edit['url[0][value]']))->fetchField(); $this->assertTrue(!empty($fid), 'The feed found in database.'); return aggregator_feed_load($fid); } @@ -94,7 +94,7 @@ } $edit += array( 'title[0][value]' => $feed_name, - 'url' => $feed_url, + 'url[0][value]' => $feed_url, 'refresh' => '900', ); return $edit; @@ -233,7 +233,7 @@ function getValidOpml($feeds) { // Properly escape URLs so that XML parsers don't choke on them. foreach ($feeds as &$feed) { - $feed['url'] = htmlspecialchars($feed['url']); + $feed['url[0][value]'] = htmlspecialchars($feed['url[0][value]']); } /** * Does not have an XML declaration, must pass the parser. @@ -243,18 +243,18 @@ - + - + - + - + EOF; diff -u b/core/modules/aggregator/lib/Drupal/aggregator/Tests/ImportOpmlTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/ImportOpmlTest.php --- b/core/modules/aggregator/lib/Drupal/aggregator/Tests/ImportOpmlTest.php +++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/ImportOpmlTest.php @@ -101,7 +101,7 @@ 'refresh' => '900', ); $this->drupalPostForm('admin/config/services/aggregator/add/opml', $edit, t('Import')); - $this->assertRaw(t('A feed with the URL %url already exists.', array('%url' => $feeds[0]['url'])), 'Verifying that a duplicate URL was identified'); + $this->assertRaw(t('A feed with the URL %url already exists.', array('%url' => $feeds[0]['url[0][value]'])), 'Verifying that a duplicate URL was identified'); $this->assertRaw(t('A feed named %title already exists.', array('%title' => $feeds[1]['title[0][value]'])), 'Verifying that a duplicate title was identified'); $after = db_query('SELECT COUNT(*) FROM {aggregator_feed}')->fetchField(); @@ -115,8 +115,8 @@ $refresh = $refresh && $feed->refresh == 900; } - $this->assertEqual($title[$feeds[0]['url']], $feeds[0]['title[0][value]'], 'First feed was added correctly.'); - $this->assertEqual($url[$feeds[1]['title[0][value]']], $feeds[1]['url'], 'Second feed was added correctly.'); + $this->assertEqual($title[$feeds[0]['url[0][value]']], $feeds[0]['title[0][value]'], 'First feed was added correctly.'); + $this->assertEqual($url[$feeds[1]['title[0][value]']], $feeds[1]['url[0][value]'], 'Second feed was added correctly.'); $this->assertTrue($refresh, 'Refresh times are correct.'); } diff -u b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedItemTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedItemTest.php --- b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedItemTest.php +++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedItemTest.php @@ -38,16 +38,16 @@ // Test updating feed items without valid timestamp information. $edit = array( 'title[0][value]' => "Feed without publish timestamp", - 'url' => $this->getRSS091Sample(), + 'url[0][value]' => $this->getRSS091Sample(), ); - $this->drupalGet($edit['url']); - $this->assertResponse(array(200), format_string('URL !url is accessible', array('!url' => $edit['url']))); + $this->drupalGet($edit['url[0][value]']); + $this->assertResponse(array(200), format_string('URL !url is accessible', array('!url' => $edit['url[0][value]']))); $this->drupalPostForm('aggregator/sources/add', $edit, t('Save')); $this->assertRaw(t('The feed %name has been added.', array('%name' => $edit['title[0][value]'])), format_string('The feed !name has been added.', array('!name' => $edit['title[0][value]']))); - $fid = db_query("SELECT fid FROM {aggregator_feed} WHERE url = :url", array(':url' => $edit['url']))->fetchField(); + $fid = db_query("SELECT fid FROM {aggregator_feed} WHERE url = :url", array(':url' => $edit['url[0][value]']))->fetchField(); $feed = aggregator_feed_load($fid); $feed->refreshItems(); diff -u b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedTest.php b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedTest.php --- b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedTest.php +++ b/core/modules/aggregator/lib/Drupal/aggregator/Tests/UpdateFeedTest.php @@ -23,7 +23,7 @@ * Creates a feed and attempts to update it. */ function testUpdateFeed() { - $remamining_fields = array('title[0][value]', 'url', ''); + $remamining_fields = array('title[0][value]', 'url[0][value]', ''); foreach ($remamining_fields as $same_field) { $feed = $this->createFeed(); @@ -38,7 +38,7 @@ // Check feed data. $this->assertEqual($this->getUrl(), url('aggregator/sources/' . $feed->id(), array('absolute' => TRUE))); - $this->assertTrue($this->uniqueFeed($edit['title[0][value]'], $edit['url']), 'The feed is unique.'); + $this->assertTrue($this->uniqueFeed($edit['title[0][value]'], $edit['url[0][value]']), 'The feed is unique.'); // Check feed source. $this->drupalGet('aggregator/sources/' . $feed->id()); only in patch2: unchanged: --- /dev/null +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php @@ -0,0 +1,86 @@ + 60, + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public function settingsForm(array $form, array &$form_state) { + $element['size'] = array( + '#type' => 'number', + '#title' => t('Size of textfield'), + '#default_value' => $this->getSetting('size'), + '#required' => TRUE, + '#min' => 1, + ); + $element['placeholder'] = array( + '#type' => 'textfield', + '#title' => t('Placeholder'), + '#default_value' => $this->getSetting('placeholder'), + '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'), + ); + return $element; + } + + /** + * {@inheritdoc} + */ + public function settingsSummary() { + $summary = array(); + + $summary[] = t('URL field size: !size', array('!size' => $this->getSetting('size'))); + $placeholder = $this->getSetting('placeholder'); + if (!empty($placeholder)) { + $summary[] = t('Placeholder: @placeholder', array('@placeholder' => $placeholder)); + } + + return $summary; + } + + /** + * {@inheritdoc} + */ + public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, array &$form_state) { + $element['value'] = $element + array( + '#type' => 'url', + '#default_value' => isset($items[$delta]->value) ? $items[$delta]->value : NULL, + '#size' => $this->getSetting('size'), + '#placeholder' => $this->getSetting('placeholder'), + '#maxlength' => $this->getFieldSetting('max_length'), + ); + + return $element; + } + +}