Построение страницы настроек модуля Drupal - PullRequest
0 голосов
/ 30 сентября 2011

Я занимаюсь рефакторингом некоторого кода - модуля Drupal, который я написал когда-то.Чтобы другие могли его использовать, я добавляю страницу конфигурации.

Я успешно определил набор полей, но не знаю, как «вставить» в него содержимое.Следующий код устанавливает радиомодули для каждого типа узла, определенного на моем сайте:

        $node_types =   node_get_types('names');
    $test   =   array(
        '#title'            =>  t('tweeting node'),
        '#type'             =>  'radios',
        '#options'          =>  $node_types,
        '#default_value'    =>  'Page',
        '#weight'           =>  0,
    );

И следующий код определяет мой набор полей, в который я хочу вставить созданные выше радиокнопки:

        $form['twitterhelper_nodecollection']   =   array(
        '#type'                             =>  'fieldset',
        '#title'                            =>  t('select a node'),
        '#weight'                           =>  0,
        '#collapsible'                      =>  TRUE,
        '#collapsed'                        => FALSE,
        '#parents'  =>  $test,
    );

Может кто-нибудь помочь, пожалуйста?

1 Ответ

3 голосов
/ 30 сентября 2011

чтобы добавить любой элемент формы внутри набора полей, вы должны вставить этот элемент формы в массив набора полей ...

Например,

$form['myfieldset'] = array( 
'#type' => 'fieldset' , 
'#collapsible' => TRUE ,
'#title' => t('My FIeldset'),
'#attributes' => array('id' => 'myfieldset-id'),
);

$form['myfieldset']['myradios'] = array(
'#type' => 'radios' , 
'#attributes' => array('id' =>'myradio-attributes') , 
....etc
);

поэтому fieldset является родителем радиостанций, а не контрастом

хоп, который поможет вам

UPDATE:
Вы можете добавить радио внутри поля, используя jquery, как показано ниже:

jQuery(document).ready(start) ; 
function start(){
  jQuery("#myradio-attributes").appendTo("#myfieldset-id"); 
  // i added this id by '#attributes'
}

но это не друпский путь

...