"Alles gelesen markieren"-Button
Eingetragen von Kreba (88)
am 08.01.2009 - 00:55 Uhr in
am 08.01.2009 - 00:55 Uhr in
Hallo,
ich Suche ein Modul, mit dem man Nodes als gelesen markieren kann bzw. das einen Button oder Link zur Verfügung stellt um alle Nodes als gelesen zu markieren. Ich habe hier im Forum nur einen sehr alten Beitrag gefunden, der sich auch nur auf Foren-Nodes bezog. Ich bräuchte das aber für beliebige Nodetypen. Gibt es das oder etwas ähnliches für Drupal 6?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe mich mal selbst
am 08.01.2009 - 21:53 Uhr
Ich habe mich mal selbst weiter auf die Suche gemacht.
Ich habe folgende Drupal-Funktion gefunden: node_tag_new
(http://api.drupal.org/api/function/node_tag_new/6)
Wenn ich es richtig verstanden habe braucht diese Funktion den nid eines Nodes um diesen auf gelesen zu setzten. Da ich mit Views alle noch nicht gelesenen Nodes abfragen kann (Filter: Node neuer Inhalt vorhanden) müsste ich doch dieses View mit einem "alles gelesen markieren" Button versehen können, den ich zum Beispiel in die Fußzeile skripte. Dazu müsste ich aber wissen, ob es eine Variable gibt, die von allen in dem View gefundenen Nodes den nid enthält. Kann mir da jemand weiter helfen?
Actions und Bulk Operations
am 10.01.2009 - 00:09 Uhr
Ich habe inzwischen eine Idee, wie man das Problem lösen könnte, es fehlt mir nur leider das Know-how. Vielleicht kann mir wer auf die Sprünge helfen.
Meine Idee ist eine Action zu schreiben, die einen Node mit Hilfe der Funktion "node_tag_new" auf gelesen setzt.
Wenn man nun die Module "Views" und "Bulk Operations" einsetzt müsste man die Action auf alle in dem View aufgelisteten Nodes anwenden können.
Ich habe eine englische Anleitung für das schreiben neuer Actions gefunden (http://drupal.org/node/172152). Meine Englischkenntnisse sind aber nicht ausreichend um die Anleitung zu verstehen. Zum Beispiel verstehe ich nicht, wo ich eine eigene Action ablegen kann. Auch wüsste ich gern, wo ich bestehende Actions, die Nodes manipulieren, finde um mir den Quellcode als Beispiel anschauen zu können.
Es hat geklappt. Zumindest
am 16.01.2009 - 22:06 Uhr
Es hat geklappt. Zumindest sieht es so aus, wie wenn das gewünschte Ergebnis erreicht wird.
Ich hab folgenden Code in das node.module eingefügt.
function node_action_info() {
return array(
'node_readtag_action' => array(
'type' => 'node',
'description' => t('Tag post as read'),
'configurable' => FALSE,
'hooks' => array('any' => TRUE),
),
(...)
function node_readtag_action(&$node, $context = array()) {
node_tag_new($node->nid);
watchdog('action', 'Set @type %title to published.', array('@type' => node_get_types('name', $node), '%title' => $node->title));
}
Das ist bestimmt nicht sauber, aber es war ein Versuch, ob es so klappt. ich würde es gerne in ein eigenes Modul packen, damit es das nächste Update überlebt, weiß aber nicht, wie ich das angehen soll. Mir wären Rückmeldungen von erfahreneren Drupalianern sicher hilfreich.