Как я могу оформить пользовательскую форму (drupal 6.x) - PullRequest
0 голосов
/ 24 мая 2010

DRUPAL 6.X
У меня есть этот пользовательский конструктор форм внутри моего пользовательского модуля, который вызывается через запрос ajax. Я пытаюсь создать тему для этой формы с тем, чтобы файл шаблона находился в моем каталоге тем. В связи с этим я зарегистрировал свою тему в файле template.php, который находится в папке моей темы. Вот как выглядит этот файл -

function my_theme() {
return array(
    'searchdb' => array(
    'arguments' => array('form' => NULL),
    'template' => 'searchform',
    )
);      

}

А вот выдержка из кода модуля -

function test_menu() {
$my_form['searchdb'] = array(
    'title' => 'Search db',
    'page callback' => 'get_form',
    'page arguments' => array(0),
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
    );

return $my_form;

}

function get_form($formtype){
switch($formtype){
    case 'searchdb' :
        echo drupal_get_form('searchdb');
        break;
}

}

function searchdb(){
$form['customer_name'] = array(
    '#type' => 'textfield',
    '#title' => t('Customer Name'),
    '#size' => 50,
    '#attributes' => array('class' => 'name-textbox'),
);
return $form; 

}

Как вы понимаете, это совсем не работает. Просто чтобы проверить, зарегистрирована ли моя тема, я также протестировал функцию темы, но она не вызывается. Я проверил имя файла шаблона и идентификатор формы (через выводимый источник HTML), и все, кажется, хорошо. Я был бы рад, если бы кто-нибудь мог указать мне правильное направление.

1 Ответ

0 голосов
/ 24 июня 2011

Я столкнулся с той же проблемой с моими формами.Это связано с версией PHP и функцией php, которая вызывается в процессе создания тем для получения вывода из функции вашей темы: call_user_func_array.

В php 5.2 и ниже он принимает структурированные массивы $ form, которые передает Drupal.в. Однако в php 5.3 он умирает.

Я решил свою проблему, откатив свою версию php до 5.2.14.

Это решение относится к Drupal 6. Я не тестировал егов Drupal 7, поскольку D7 заявляет о совместимости с php 5.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...