Урок один. Создаем модуль на Drupal. Как с Drupal создать форму и вывести данные из формы на этой или другой страници. Хук hook

Пример 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"

Чтобы комментировать, необходимо войти в систему.

© 2009 Обзор CMS