Пример 1. Как с Drupal создать форму и вывести данные из формы на этой или другой страници.
————————
| Создаем форму |
————————
|
———————————————————————
| Выводим данные с помощью функции variable_get() |
———————————————————————-
Для этого:
Создаем модуль.
Для этого:
- создаем папку и называем ее по названию модуля, например urokone и сохраняем его в my_site/sites/all/modules
- в этой папке создаем в notepad++ два файла в формате utf-8 without BOM. Что такое BOM и где скачать notepad++ смотрим в википедии.
Создаем два файла в этой папке и называем их
urokone.info
urokone.module
1.1. Минимальное содержимое файла urokone.info
; $Id$
name = Urokone
description = Simple form one
core = 6.x
; $Id$ //если вы будите выставлаять ваш модуль на Drupal.org то он добавит автоматически свои параметры
name = urokone // название вашего модуля
description = Simple form one //описание
core = 6.x //в нашем случае мы пишем для Drupal 6.
1.2. Минимальное содержимое файла urokone.module
Минимальное содержание этого файла, для того что бы открыть страницу с модулем (с формой), это функция меню.
<?php function urokone_menu() { $items = array(); $items['urokone'] = array( 'page callback' => 'drupal_get_form', 'page arguments' => array('urokone_formone'), ); return $items; }
$items['urokone'] = array( ); // эта сторочка означает, что форму c названием (Form_ID) urokone_formone, которую я собираюсь вставить в этот модуль можно будет найти после активации если кликнуть на локальном сервере
127.0.0.1/my_site/urokone
Теперь активируем модуль
Для этого:
- кликните в администраривной панели на Administer -> modules
ваш новые модуль будет находится в разделе others. Кликаем чекбокс напроив нашего модуля.
У меня на локальном сервере это выглаядит так:


И кликаем на кнопку Save Configuration. Когда сделаем следующие изменения в модуле надо будет очистить кеш. Administer->Performance->Clear cashed data
2. Пишим весь модуль.
———————————–
2.1 | Создаем меню |
———————————–
|
————————————————————————-
2.2. | Создаем условия доступа для различных пользователей |
————————————————————————–
|
——————–
2.3. | Создаем help |
——————–
|
—————————————————————————-
2.4. | Создаем форму |
———————–
|
———————————————————————————————-
2.5. | Выводим содержиое, которое user вбил в форму на экран (в нашем
случае в блоке)
————————————————————————————————
2.1. Создаем меню.
Для создания меню используем hook – это функции дрюпала. Например hook
function hook_menu()
для нашего модуля мы должны измеить по названию нашего модуля на
function urokone_menu() { $items = array(); $items['urokone'] = array( 'title' => 'Как подтвердить факт отправленния ненулевых данных в форму?', 'description' => 'Urokone first form', 'page callback' => 'drupal_get_form', 'page arguments' => array('urokone_formone'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, ); return $items; }
2.2. Создаем условия доступа различных пользователей.
Используем хук hook_perm()
function urokone_perm() { return array('access urokone content', 'access administration pages'); } // function urokone_perm()
2.3. Создаем help
Используем хук hook_help()
function urokone_help($path, $arg) { $output = ''; //declare your output variable switch ($path) { case "admin/help#urokone": $output = '<p>'. t("Displays information about site") .'</p>'; break; } return $output; } // function urokone_help
Здесь можно сохранить модуль. Помните (Administrator-> modules -> Save configurations) и посмотреть появление строчки “Displays information about site” , если пойти Administer – > help -> urokone


Если на этой страницы кликнуть на urokone то увидим страницу со строкой “Displays information about site”. Мы в хуке help можем заменить эту строку на подробное описание нашего модуля.

———————————————————————————————
Теперь нам осталось
————————
| Создать форму |
————————
|
———————————————————————
| Выводим данные с помощью функции variable_get() |
———————————————————————-
———————————————————————————————-
2.4. Создаем форму
Используем функцию urokone_formone()
Например я хочу сделать такую форму:

Для этого в Drupla мы пишем функцию urokone_formone().
function urokone_formone($form_state) { $form = array(); $form['one_one'] = array( '#type' => 'checkbox', '#title' => 'if ($_REQUEST["text"]) {echo "Data was send";}', '#default_value' => variable_get('one_one', false), ); $form['one_two'] = array( '#type' => 'checkbox', '#title' => t('if ($_REQUEST("text")) {echo "Data was send";}'), '#default_value' => variable_get('one_two', false), ); $form['one_three'] = array( '#type' => 'checkbox', '#title' => t('if {$_REQUEST["text"]} {echo "Data was send";}'), '#default_value' => variable_get('one_three', false), ); return system_settings_form($form); } // end urokone_formone
Заходим на 127.0.0.1/lesson/urokone
При этом в результате работы функции return system_settings_form($form); появляютя две кнопки “Save configuration” и “Reset to default”
2.5. Выводим содержиое, которое user вбил в форму на экран (в нашем
случае в блоке. Используем хук hook_block.
function urokone_block($op='list', $delta=0) { if ($op == "list") { $block = array(); $block[0]["info"] = t('urokone'); return $block; } else if ($op == 'view') { switch ($delta) { case 0: $block_content = ''; $block['subject'] = 'urokone'; $one_one= variable_get('one_one', false); $one_two= variable_get('one_two', false); $one_three= variable_get('one_three', false); if ($one_one or $one_two or $one_three) { if ($one_one) $block['content'] .= 'your answer is correct '; if ($one_two) $block['content'] .= 'your answer is not correct '; if ($one_three) $block['content'] .= 'your answer is not correct'; } break; } return $block; } } // end urokone_block
Теперь надо активировать новый блок urokone который мы создали. Идем в Administer -> blocks.
Находим наш блок urokone в списке Disabled.

Меняю регион с “none” на другоe. Я например выбрала “Left sidebar”.
И нажимаю на кнопку внизу Save blocks.

Теперь зайдем еще раз на страницу с нащей формой 127.0.0.1/lesson/urokone и кликнми на какой нибудь чекбокс. Например на вророй чекбокс с правильным ответом.
У нас слева в блоке urokone появится сообщение о том на какой чекбокс мы кликнули.
| Прикрепленный файл | Размер |
|---|---|
| tut1_1.png | 29.72 кб |
| tut1_2.png | 24.68 кб |
| tut1_3.png | 23.3 кб |
| tut1_4.png | 47.17 кб |
| tut1_5.png | 14.56 кб |
| tut1_6.png | 33.72 кб |
| tut1_7.png | 56.37 кб |
| tut1_8.png | 40.71 кб |
Источник: http://www.drupal.ru/node/74258
Добавить комментарий к записи "Урок один. Создаем модуль на Drupal. Как с Drupal создать форму и вывести данные из формы на этой или другой страници. Хук hook"
Чтобы комментировать, необходимо войти в систему.