Proble mit Darggable Table
am 28.04.2009 - 13:30 Uhr in
Moin Leute,
ich versuchen gerade eine drag & drop-fähige Tabelle zu erstellen. Ich gehe dabei nach diesem Beispiel vor: Drag & Drop. Aus der Datenbank bekomme ich zwei Ergebnisse. Daher werden mir auch schon zwei Textfelder angezeigt. Aber die Tabelle wird überhaupt nicht gebaut.
Das ist mein Eintrag in hook_menu:
$items['admin/settings/card-generator/test'] = array(
'title' => 'Test',
'page callback' => 'drupal_get_form',
'page arguments' => array('game_overview_form'),
'access arguments' => array('view cardgenerator overview'),
'type' => MENU_NORMAL_ITEM,
);Das ist der hook_form:
function game_overview_form() {
$games = _get_games_info();
foreach ($games as $game) {
foreach ($game as $key => &$value) {
switch ($key) {
case 'dimensions': $value . ' mm'; break;
case 'print_resolution': $value . ' DPI'; break;
case 'cover':
case 'impress':
case 'numbering':
case 'active':
$stateImg = _get_active_state_image_info($value);
$value = theme('image', drupal_get_path('module', 'card-generator') . '/images/' . $stateImg['img'] . '.gif', $stateImg['title'], $stateImg['alt']);
break;
}
}
$form['rows'][$game['id']]['data'] = array(
'#type' => 'value',
'#value' => $game,
);
$form['rows'][$game['id']]['weight-'.$row->id] = array(
'#type' => 'textfield',
'#size' => 5,
'#default_value' => $weight,
//add a specific class in here - we need this later
'#attributes' => array('class' => 'weight'),
);
}
$form['submit'] = array(
'#type'=>'submit',
'#value'=>t('Save changes'),
);
return $form;
}Und das die Überschreibung in der template.php:
function cardgenerator_theme() {
return array(
'game_overview_form' => array(
'arguments' => array('form' => null),
),
);
}Und die Theme-Funktion:
function theme_game_overview_form($form) {
foreach($form['rows'] as $id => $row) {
if (intval($id)){
$this_row = $row['data']['#value'];
$this_row[] = drupal_render($form['rows'][$id]['weight-'.$id]);
$table_rows[] = array('data' => $this_row, 'class' => 'draggable');
}
}
$games = _get_games_list();
$header = array_keys($games[0]);
$output = theme('table', $header, $table_rows, array('id' => 'games-list'));
$output .= drupal_render($form);
drupal_add_tabledrag('games-list', 'order', 'sibling', 'weight', null, null, false);
return $output;
}Kann mir jemand sagen was ich falsch mache? Irgendwie scheint die
Zur Info: Ich nutze Yaml für Drupal und arbeite mit einem Sub-Theme.
Beste Grüße
dops
- Anmelden oder Registrieren um Kommentare zu schreiben

hook_theme
am 29.04.2009 - 09:33 Uhr
Moin!
So auf den ersten Blick würde ich sagen: Du sagst Drupal nicht, welche Funktion zum Themen des Formulars verwendet werden soll.
Tipp: hook_theme().
hth,
Stefan
--
2 Personen mit Halbwissen sind schlimmer als eine unwissende Person.
Ist das denn nicht richtig?
am 29.04.2009 - 12:12 Uhr
Ich hab doch diese Funktion in der template.php.
function cardgenerator_theme() {return array(
'game_overview_form' => array(
'arguments' => array('form' => null),
),
);
}
Oder reicht das nicht aus?
Modulentwicklung
am 29.04.2009 - 12:43 Uhr
Ich hab doch diese Funktion in der template.php.
Da gehört sie definitiv nicht hin. Tipp: Handbuch lesen.
hth,
Stefan
--
2 Personen mit Halbwissen sind schlimmer als eine unwissende Person.