простой пример формы в drupal 7 со всем настроенным правильно показывает "Страница не найдена" .. Почему ..? - PullRequest
3 голосов
/ 19 февраля 2012

Я установил Drupal 7 и пытался создать пользовательскую форму. Приведенный ниже код, который я пытаюсь использовать, взят из http://drupal.org/node/717722, и я не внес никаких изменений, кроме файла .info.

вот my_module.info

name = My module
description = Module for form api tutorial
core = 7.x

Ниже находится my_module.module

<?php

/**
* This function defines the URL to the page created etc.
* See http&#58;//api.drupal.org/api/function/hook_menu/6
*/
function my_module_menu() {
  $items = array();
  $items['my_module/form'] = array(
    'title' => t('My form'),
    'page callback' => 'my_module_form',
    'access arguments' => array('access content'),
    'description' => t('My form'),
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
* This function gets called in the browser address bar for:
* "http://yourhost/my_module/form" or
* "http://yourhost/?q=my_module/form". It will generate
* a page with this form on it.
*/
function my_module_form() {

  // This form calls the form builder function via the
  // drupal_get_form() function which takes the name of this form builder
  // function as an argument. It returns the results to display the form.
  return drupal_get_form('my_module_my_form');

}

/**
* This function is called the "form builder". It builds the form.
* Notice, it takes one argument, the $form_state
*/
function my_module_my_form($form_state) {

// This is the first form element. It's a textfield with a label, "Name"
  $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Name'),
  );
  return $form;
}

?>

Я поместил эти два файла в папку * my_module * и поместил его в sites / all / modules После этого я включил модуль со страницы модулей без каких-либо ошибок или предупреждений.

Теперь, когда я пытаюсь получить доступ к этому для использования URL, localhost / d7 /? Q = my_module / form

Я получаю ошибку "Страница не найдена" .. !! Зачем..?? Чего мне не хватает ..?

Это не только для этого модуля, но и для этого примера для модуля разработчиков http://drupal.org/project/examples. Он показывает ту же ошибку.

Ответы [ 2 ]

0 голосов
/ 17 октября 2013

Я знаю, что уже поздно, но я верю, что вам нужно передать переменную $ form в вашу форму, например:
функция my_module_my_form ($ form_state, $ form) ...
Таким образом, у вас действительно есть переменная формы для размещения данных формы.

0 голосов
/ 09 октября 2012

Вы должны написать:

$items['my_module']

Где my_module - имя модуля.
И вам нужно создать файл page-my_module_my_form.tpl.php в

sites/all/theme/your_theme/template/page-my_module_my_form.tpl.php

и в этом файледобавьте такой код:

<?php

if (isset($form['submission_info']) || isset($form['navigation'])) {
    print drupal_render($form['navigation']);
    print drupal_render($form['submission_info']);
}

print drupal_render($form['submitted']);

?>

<?php print drupal_render_children($form); ?>

и попробуйте запустить с

localhost / d7 / my_module

Надеюсь, это будет вам полезно

...