[GELÖST]: Formular in Tabelle einbauen
am 06.05.2016 - 13:58 Uhr in
Liebe DrupalCenter-Community,
ich habe folgende Frage/folgendes Problem: Ich habe ein Modul geschrieben, das aus einer externen Datenbank eine Tabelle mit Hausübungen und Abgabedatum ausliest und ausgibt. Auch das Formular zum Hinzufügen von neuen Hausübungen habe ich schon geschrieben und es funktioniert soweit alles. Jetzt soll es aber auch die Möglichkeit geben, - im Idealfall - in der Tabelle bei den Hausübungen direkt neben dem Datum auf einen Button zu klicken, wodurch eine Funktion ausgeführt wird, die die Aufgabe als "Erledigt" markiert. Diese Funktion ist kein Problem, die habe ich schon.
Nun, ich habe im Hook-Menu folgenden Code:
<?php
function hw_menu() {
$items = array();
$items['hue'] = array(
'title' => 'Hausübungen',
'page callback' => 'hw_anzeigen',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
$items['hue/add'] = array(
'title' => 'Neue Aufgabe hinzufügen',
'description' => 'Dieses Formular dient zum Hinzufügen einer neuen Aufgabe in das HÜ-System.',
'page callback' => 'drupal_get_form',
'page arguments' => array('hw_addform'),
'access callback' => TRUE,
);
return $items;
?>
In der Funktion "hw_anzeigen()" würde ich jetzt gerne eben bei der Tabelle (die in einem
<?php
/* ... */ while ($row = $result->fetchAssoc()) /* ... */
?>
Hat jemand eine Lösung oder einen Tipp dafür?
Liebe Grüße und vielen Dank für Eure Hilfe,
Niki
PS: Ich hoffe, dass ich das jetzt einigermaßen verständich geschrieben habe ...
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn Du nur einen Button
am 08.05.2016 - 12:02 Uhr
Wenn Du nur einen Button anzeigen möchtest und nicht eine Stapelverarbeitung realisieren möchtest ist das quasi nur ein Link.
Hier mal der Beispielcode dazu (ohne Gewähr, einfach mal runtergetippt):
<?php
/**
* Implements hook_menu().
*/
function example_menu() {
$items = array();
$items['hue/%/done'] = array(
'title' => 'Set done',
'page callback' => 'hw_set_done',
'page arguments' => array(1),
'access callback' => TRUE,
);
return $items;
}
/**
* List all data
*/
function hw_anzeigen() {
// while ($row = $result->fetchAssoc()
$link = l(t('Set done'), 'hue/' . $row->id . '/done', array('query' => drupal_get_destination()));
// Add this "button" to your row
$rows[] = array(
$row->title,
$row->uid,
// ....
$link
);
return theme('table', array('rows' => $rows);
}
/**
* Set hue to done
*/
function hw_set_done($id = NULL) {
// Query to set id to done, just example
db_query("UPDATE {MY_TABLE} SET status = 1 WHERE id = :id", array(':id' => $id));
}
?>
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Danke, das funktioniert
am 08.05.2016 - 16:48 Uhr
Danke, das funktioniert super!
Liebe Grüße,
Niki