Я хочу создать модуль, который добавит дополнительное поле на странице конфигурации блока формы поиска, чтобы сохранить текст, который будет отображаться как атрибут заполнителя HTML5. Какие крючки мне нужно использовать, и как мне изменить только блок формы поиска, чтобы иметь дополнительный текстовый файл, который затем печатается на странице?Drupal 7 добавить поле в форму формы блока поиска
ответ
Это код, который наконец-то работал, спасибо за вашу помощь:
function yourmodule_form_alter(&$form, &$form_state, $form_id) {
if (($form_id == 'block_admin_configure') && ($form['module']['#value'] == 'search')) {
$form['settings']['theplaceholder'] = array(
'#type' => 'textfield',
'#title' => t('Add placeholder text'),
'#default_value' => variable_get('theplaceholder'),
'#maxlength' => 64,
'#description' => 'Override the default placeholder',
'#weight' => 2,
'#access' => TRUE,
);
$form['#submit'][] = 'yourmodule_submit_function';
}
if ($form_id == 'search_block_form') {
$form['search_block_form']['#attributes']['placeholder'] = variable_get('theplaceholder');
}
}
function yourmodule_submit_function($delta = '', $edit = array()){
variable_set('theplaceholder', $edit['values']['theplaceholder']);
}
Вы можете использовать следующий крюк, чтобы изменить любую форму:
function MODULE_NAME_form_FORM_ID_alter(&$form, &$form_state, $form_id) {
}
Вставьте собственное имя модуля и формы идентификатор формы, которую вы пытаетесь изменить. В вашем случае это будет форма поиска или блок-форму поиска только для блока. Узнайте идентификатор формы, которую вы пытаетесь изменить, просмотрев источник html страницы и получив идентификатор от элемента.
В любом случае, как только вы выяснили правильный идентификатор для вставки, начать добавление элементов в форму:
function MODULE_NAME_form_FORM_ID_alter(&$form, &$form_state, $form_id) {
$form['my_new_field'] = array(
'#type' => 'item',
'#markup' => t('Just testing'),
'#weight' => 10,
);
}
Загрузите форму до убедиться, что ваш новый ярлык, поле или что-то показывает вверх.
Это работало для вас?
Дополнительная документация по этой функции здесь: http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_form_FORM_ID_alter/7
Спасибо за ответ; этот код добавляет поле на переднем конце, я бы хотел, это текстовое поле в настройках конфигурации для блока поиска, чтобы я мог вводить текст заполнителя, а затем выводить его на передний конец ... – itsututa
О, это тот же главный. Если форма конфигурации окна поиска уже есть, вы можете посмотреть исходный код, чтобы получить идентификатор этой формы и поместить идентификатор ITS в имя функции. Просто найдите элемент
Хорошо, я попробовал это и не выдал текстовое поле в форме блока администратора: – itsututa
- 1. Как добавить поле для изображения в форму drupal 7
- 2. Drupal 7 form_alter полностью удаляет поле формы
- 3. Drupal модуль конфигурации 7 блока
- 4. Загрузить форму внутри блока Drupal
- 5. Set Node Добавить Название формы Drupal 7
- 6. Создать пользовательскую форму поиска drupal
- 7. Добавить текст по умолчанию в текстовое поле в drupal 7
- 8. Drupal 7: вставить фотографию в форму drupal
- 9. Drupal 7 - Окно поиска
- 10. Drupal 7 параметры поиска
- 11. drupal: добавить поле поиска к статье
- 12. Как добавить мой CSS-класс в форму в drupal 7
- 13. Drupal 7: вызов «блока меню» в page.tpl.php
- 14. Drupal 7 hook_form_alter и отправив форму
- 15. Проверка веб-формы в drupal 7
- 16. Drupal, Ubercart - Добавить персонуемое поле в форму заказа
- 17. Как скопировать веб-форму из существующей формы в Drupal 7
- 18. Drupal 7 Вычисляемое поле
- 19. Drupal: добавить контактную форму как поле в профиль пользователя
- 20. Упорядочить узел/добавить форму в Drupal 6
- 21. Как создать форму в Drupal 7
- 22. Удалить поле в Drupal 7
- 23. создать мульти формы шага в Drupal 7
- 24. Как создать шаблон блока в drupal 7
- 25. Drupal 7 использовать тизер в качестве блока
- 26. Проверка формы регистрации пользователя в drupal 7
- 27. Theming Drupal Добавить блочную форму через формы API
- 28. текстовое поле drupal 7 #default_value игнорируется после перестройки формы
- 29. Добавить пользовательский код в веб-форму Drupal 7
- 30. Drupal 7 - Добавить форму редактирования узла в «Простую страницу»
Я рад, что все получилось. Похоже, вы все-таки использовали крюк form_alter, функцию отправки и variable_get и variable_set ... –
Да, все в порядке, спасибо за вашу помощь! – itsututa