Тематическая форма в Drupal, которая должна быть частью контента сущности - PullRequest
1 голос
/ 21 июня 2011

У меня есть форма в моем модуле (мой модуль) ...

function mymodule_form()
{
   $form['mytext'] = array(
     '#title' => 'Password',
     '#type' => 'password',
     '#size' => 10,
   );
   $form['submit'] = array(
     '#type' => 'submit',
     '#value' => 'Cool!',
   );
   $form['cool_submit'] = array(
     '#type' => 'submit',
     '#value' => 'Cool Submit!',
   );
   return $form;
}

Я использовал крючок hook_entity_view, чтобы отобразить эту форму под всеми отображаемыми друпалевыми сущностями.

function mymodule_entity_view($entity, $type, $view_mode, $langcode) {
  $entity->content['myadditionalfield'] = mymodule_form();
}

При показе этой формы drupal сам добавляет тег DIV в mytext (поле пароля). Я хочу переопределить это и предоставить свои собственные теги DIV и тему для этой формы. Как мне это сделать?

Спасибо: -)

1 Ответ

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

Я работал над этим вопросом, чтобы решить его.И проблема была решена.Я изменил приведенный выше код ...

function mymodule_entity_view($entity, $type, $view_mode, $langcode) {
  $element = array(
    'start' => array(
        '#type' => 'button',
        '#name' => 'start', 
        '#button_type' => 'submit',
    ),
    'my_text' => array(
        '#type' => 'textfield',
        '#size' => 30, 
        '#maxlength' => 50,
    ),
    'my_submit' => array(
        '#type' => 'button',
        '#name' => 'Submit Discussion',
        '#button_type' => 'submit',
    ),
  );

  $entity->content['disc_bar'] = $element;
}

И проблема продолжала нарастать, когда отображалось текстовое поле или поле пароля.Я проверил массив типов в функции info системных элементов (хук elements_info) и обнаружил, что поля text и пароль имеют значение по умолчанию для # theme-wrapper.Я попытался переопределить это таким образом ...

'my_text' => array(
        '#type' => 'textfield',
        '#size' => 30, 
        '#maxlength' => 50,
        '#theme-wrapper' => '',
),

, и это сработало.Он не генерирует никаких дополнительных тегов деления ...: -)

...