Итак, рассмотрим буквально два простых конкретных примера работы с формами на Drupal 7. Поехали.
Example 1.
<?php function MyRegForm_form_user_register_form_alter(&$form, &$form_state, $form_id) {
$form['terms_of_use'] = array( '#type' => 'checkbox', // галочка '#title' => "Я ознакомлен(а) с правилами вашего сайта.", // заголовок '#required' => TRUE, // попробуй не заполнить... ); // титл кнопки тоже поменяю, чисто для демонстрации $form['actions']['submit']['#value'] = 'Готово!'; } ?>
Как использовать: пишите function ИмяМоегоМодуля_form_ИдентификаторФормы_alter(&$form, &$form_state, $form_id) { … }.
Example 2. Далее приведу второй более «универсальный» способ с гораздо более широкой областью действия, так сказать: через hook_form_alter.
<?php function MyContact_form_alter(&$form, &$form_state, $form_id) { // здесь уже приходится проверять, является ли наша форма контактной по ID if ($form_id == 'contact_site_form') : $form['actions']['submit']['#value'] = "Отправить письмо"; // опять кнопочка $form['#attributes']['class'][] ='BlaBlaBla'; // здесь добавим свой CSS-класс для «контактов» endif; } ?>
Как использовать: пишите function МойМодуль_form_alter(&$form, &$form_state, $form_id) { … }. Написанное актуально для поставляемого с Drupal 7 по умолчанию модуля Contact. По аналогии нетрудно проделать подобное и c другими элементами.
Разумеется под «нетрудно» я подразумеваю случай, когда у вас имеется хоть какая-то базовая подготовка по программированию, знания API. Хвастунов-пустословов «все легко, все смогу, делается за пять минут» видали думаю все предостаточно.
В завершение ещё раз отмечу, что все вышеприведенные функции лучше оформлять отдельным модулем, аля супер-мега-крутое расширение. А если серьезно, то так будет правильней и удобней (задаток на упреждение будущих несуразиц при расширении проекта и пр.) в плане отделения внешнего вида/«скина-шкурки» от функционала сайта.
Источник: sooource.net