From 466f693276617c8def2c72601c402e7be4b21ad0 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Fri, 30 Apr 2010 07:48:07 +0000
Subject: [PATCH] - Patch #755566 by effulgentsia: use of ID within
 theme_filter_guidelines() breaks HTML validation with more than 1 field item
 on a page.

---
 modules/filter/filter.js           | 2 +-
 modules/filter/filter.module       | 4 +++-
 modules/simpletest/tests/ajax.test | 8 ++------
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/modules/filter/filter.js b/modules/filter/filter.js
index 13b0277c297b..d9e2114b7c44 100644
--- a/modules/filter/filter.js
+++ b/modules/filter/filter.js
@@ -12,7 +12,7 @@ Drupal.behaviors.filterGuidelines = {
       .bind('change', function () {
         $(this).parents('.filter-wrapper')
           .find('.filter-guidelines-item').hide()
-          .siblings('#filter-guidelines-' + this.value).show();
+          .siblings('.filter-guidelines-' + this.value).show();
       })
       .change();
   }
diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index b83aac959bba..795315fd65a0 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -1122,7 +1122,9 @@ function theme_filter_guidelines($variables) {
   $format = $variables['format'];
 
   $name = isset($format->name) ? '<label>' . $format->name . ':</label>' : '';
-  return '<div id="filter-guidelines-' . $format->format . '" class="filter-guidelines-item">' . $name . theme('filter_tips', array('tips' => _filter_tips($format->format, FALSE))) . '</div>';
+  $attributes['class'][] = 'filter-guidelines-item';
+  $attributes['class'][] = 'filter-guidelines-' . $format->format;
+  return '<div' . drupal_attributes($attributes) . '>' . $name . theme('filter_tips', array('tips' => _filter_tips($format->format, FALSE))) . '</div>';
 }
 
 /**
diff --git a/modules/simpletest/tests/ajax.test b/modules/simpletest/tests/ajax.test
index c10b8362bf7f..80ea29f5819f 100644
--- a/modules/simpletest/tests/ajax.test
+++ b/modules/simpletest/tests/ajax.test
@@ -268,9 +268,7 @@ class AJAXMultiFormTestCase extends AJAXTestCase {
       $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == 1, t('Found the correct number of field items on the initial page.'));
       $this->assertFieldByXPath($field_xpath . $button_xpath_suffix, NULL, t('Found the "add more" button on the initial page.'));
     }
-    // @todo Legacy bug of duplicate ids for filter-guidelines-FORMAT. See
-    //   http://drupal.org/node/755566.
-    $this->assertNoDuplicateIds(t('Initial page contains unique IDs'), 'Other', array('filter-guidelines-1', 'filter-guidelines-2', 'filter-guidelines-3'));
+    $this->assertNoDuplicateIds(t('Initial page contains unique IDs'), 'Other');
 
     // Submit the "add more" button of each form twice. After each corresponding
     // page update, ensure the same as above. To successfully implement
@@ -286,9 +284,7 @@ class AJAXMultiFormTestCase extends AJAXTestCase {
         $settings = array_merge_recursive($settings, $commands[0]['settings']);
         $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == $i+2, t('Found the correct number of field items after an AJAX submission.'));
         $this->assertFieldByXPath($field_xpath . $button_xpath_suffix, NULL, t('Found the "add more" button after an AJAX submission.'));
-        // @todo Legacy bug of duplicate ids for filter-guidelines-FORMAT. See
-        //   http://drupal.org/node/755566.
-        $this->assertNoDuplicateIds(t('Updated page contains unique IDs'), 'Other', array('filter-guidelines-1', 'filter-guidelines-2', 'filter-guidelines-3'));
+        $this->assertNoDuplicateIds(t('Updated page contains unique IDs'), 'Other');
       }
     }
   }
-- 
GitLab