Столкнулся с такой фишкой - на главной странице сайта есть две формы - форма поиска и входа пользователя. Элементы [b]submit[/b] в этих формах имеют одинаковый атрибут [b]id[/b]="edit-submit".
Естественно на это ругается валидатор w3c. Еще он правда ругается на размещение [b]ul[/b] внутри [b]span[/b], но это решаемо. Такая же ругань например на www.drupal.org. И на drupal.ru.
Как с этим мирится сообщество?
Комментарии
Размещение ul внутри span - это проблема темы (или модуля, например dhtml_menu).
А вот про ID формы самому интересно. Ибо получается, что валидны только страницы с одной и менее кнопок
Пока что подпатчил модуль search, хотя тоже с непредсказуемым результатом.
$form['submit'] = array('#type' => 'submit', '#value' => t('Search'), '#id' => 'edit-search-form-submit');
Добавил #id в надежде что он попадет в выходную форму. Получилось, что id вообще пропал. Что в принципе тоже устраивает. Надо втыкать в form.inc.
Что самое интересное - всем остальным элементам формы назначается правильный ID, включающий в себя название формы.
Значит проблема только с модулем search?
Тогда может будет достаточно темизации ф-ции theme_search_theme_form?
не, проблема глобальная. Просто гнусно подпатчив модуль, я временно обошел ее, поскольку у меня больше форм особо не предвидится.
"Просто гнусно подпатчив модуль, я временно обошел ее"
хорошо сказано...
Есть патч. Для всех кнопок (см. Problem with xhtml validation)
<?php
/**
* Correct 'ID "edit-submit" already defined' validation error caused by search forms.
*/
function phptemplate_submit($element) {
srand ((double) microtime( )*1000000);
$random_number = rand(100,999);
return str_replace('edit-submit','edit-submit-'.$random_number,theme('button', $element));
}
?>
И так криво, и эдак криво :). Но все равно спасибо - хоть не ругается теперь.