Добрый день.
Не получается в таблице в своем модуле сделать сохранение изменений через variable_get. Например в функции function draggabledemo_sort_form. Таблица выводится, но при изменении веса, изменения не сохраняются.
Код в полной версии.
<?php
/**
* Implementation of hook_menu
*/
function draggabledemo_menu() {
$items = array();
$items['draggabledemo'] = array(
'title' => 'Draggable Sorting List Demo',
'page callback' => 'drupal_get_form',
'page arguments' => array('draggabledemo_sort_form'),
'access arguments' => array('access content'),
);
return
$items;
}
/**
* Form for re-ordering draggabledemo
*/
function draggabledemo_sort_form($node) {
$data = array(
0 => 'First One',
1 => 'Another One',
2 => 'Some One',
);
$form = array();
$form['list']['#tree'] = TRUE;
$form['list']['#theme'] = 'draggabledemo_list_sort_form';
foreach ($data AS $key => $title) {
$form['list'][$key]['title'] = array(
'#value' => $title
);
$form['list'][$key]['sort'] = array(
'#type' => 'weight',
'#delta' => count($data),
'#default_value' => $key
);
}
return system_settings_form($form);
}
/**
* Theme the re-ordering form
*/
function theme_draggabledemo_list_sort_form($form) {
drupal_add_tabledrag('draggabledemo-sort', 'order', 'sibling', 'sort');
$header = array('', 'title', 'sort');
foreach (element_children($form) as $key) {
// Add class to group weight fields for drag and drop.
$form[$key]['sort']['#attributes']['class'] = 'sort';
$row = array(''); //This is important. We need to start with an empty element for the drag handle.
$row[] = drupal_render($form[$key]['title']);
$row[] = drupal_render($form[$key]['sort']);
$rows[] = array('data' => $row, 'class' => 'draggable'); //note the difference between $row and $rows
}
$output = theme('table', $header, $rows, array('id' => 'draggabledemo-sort'));
$output .= drupal_render($form);
return $output;
}
/**
* Implementation of hook_theme
*/
function draggabledemo_theme() {
return array(
'draggabledemo_list_sort_form' => array(
'arguments' => array('form' => NULL),
),
);
}
?>
Комментарии
system_settings_form не работет с формами у которых '#tree' = TRUE
Блин, плохо.
Т.е. надо самому писать действия, которые происходят при сохранении?
угумс