Семантическая ошибка программирования модуля drupal 6

Я должен написать простой модуль (не использовать веб-формы), который создает форму для получения данных. Но мои элементы моей формы не показали. Я использую Drupal 6.0 Doc, но я не знаю, что не так!

это ссылка на мой исходный код.

Я получаю сообщение об ошибке msg: warning: отсутствует аргумент 2 для registration_register_form() в /var/www/drupal/sites/all/modules/registeration/registration.module в строке 29.

Но я пишу правильные аргументы.

1 ответ

Решение

Вам не нужно передавать $form а также $form_state в большинстве * форм.

Попробуй это:

function registration_register_form(){

вместо:

функция registration_register_form($form, &$form_state){

Фон: drupal_get_form передает любые заданные параметры registration_register_form() но в registration_all() Вы не передаете никаких дополнительных аргументов. (Просто обратный вызов функции формы).

Обратите внимание, что вам все равно нужно пройти $form а также $form_state в функции отправки как registration_register_form_submit() использует данные $ form_state.

* в большинстве случаев: если ваша форма является многошаговой, и форма меняется на $form_state значения переменной, это хороший вариант использования, в котором вам нужно передать $ form и $ form_state registration_register_form()

Обновление После проверки вашего кода я обнаружил много ошибок. Смотрите новую редакцию: http://pastebin.com/VNa3veFR (не в списке). Я исправил большинство проблем, которые мог заметить. Смотрите встроенные комментарии и блоки комментариев над именами функций.

Другие вопросы по тегам