Node Referenz Problem

am 31.08.2008 - 16:44 Uhr in
Ich habe jetzt erstmals intensiver mit dem Modul nodereference gearbeitet.
Ich habe also einen neuen Inhaltstyp "Teilnehmer" erstellt und diverse Teilnehmer-Nodes angelegt.
Anschließend habe ich den Inhaltstyp "Veranstaltung" erstellt. Darin sind zwei Teilnehmer aus dem Inhaltstyp "Teilnehmer" einzufügen, also zwei Nodereferenzfelder auszufüllen.
Das klappt auch gut.
Nun wollte ich allerdings sicherstellen, dass Nodes des Typs "Teilnehmer" nur dann gelöscht werden dürfen, wenn sie noch nicht im Typ "Veranstaltung" verwendet wurden. In Access nennt sich das "referenzielle Integrität".
Gibt es in Drupal auch einen solchen Schutz vor Löschungen.
Wenn ja , wo und wie ?
Oder gibt es noch ein anderes Modul mit einer solchen Funktion ?
- Anmelden oder Registrieren um Kommentare zu schreiben
Auf Anhieb kenne ich nichts
am 01.09.2008 - 08:39 Uhr
Auf Anhieb kenne ich nichts fertiges. Es gibt ein reverse nodereference Modul (http://drupal.org/project/nodereferrer), vielleicht kannst du ja auf dessen Basis so etwas selber bauen?
Ansonsten kenne ich nur bei Organic Groups die Warnung, wenn man eine Group löschen möchte. Dann wird gefragt, wo deren Beiträge hin sollen oder ob sie auch mit gelöscht werden sollen.
http://www.twitter.com/aschiwi
Drupal-Initiative e.V.
Ich denke mit nodeapi und
am 01.09.2008 - 08:59 Uhr
Ich denke mit nodeapi und hook_validate sollte das kein Problem sein, wenn im Node-Object etwas zu finden ist, was Infos enthält, ob referencen auf diesen Node verweisen bzw andersrum. In D6 gibt es eine View (Backlinks-weiterer Tab) vom Views-Modul, die alle Nodes auflistet, die auf diese Node verweisen.
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Danke für die Hinweise,
am 02.09.2008 - 20:01 Uhr
Danke für die Hinweise, aber verhindert nichts davon unmittelbar die Löschung.
Selbst was zu programmieren überfordert mich leider.
Eigentlich verwunderlich, dass man zu diesem Thema praktisch nichts findet, weil doch eigentlich jeder, der dieses Modul benutzt, auf das Problem stossen muss.
Es gibt übrigens noch ein Problem.
Die Elemente der Select List sind bei mir immer alphabetisch sortiert. Um das zu umgehen, kann man statt des direkten Verweises auf einen selbst erstellten beliebig sortierten View verweisen.
Ich habe das mal nach der Teilnehmernummer + Name getan.
Nun wird aber in der Select List nicht nur die Nummer und der Name angezeigt, sondern dahinter auch der Titel der referenzierten Nodes. Sieht bei mir etwas blöd aus, weil ich den Titel nämlich per autonodetitle und token gerade aus dem Namen des Teilnehmers generiert habe.
Gibt es eine Möglichkeit den Nodetitel in der Select List zu unterdrücken ?
Öhm, ich hab mal ein
am 02.09.2008 - 20:48 Uhr
Öhm, ich hab mal ein bisschen in der issue queue rumgesucht und scheinbar hat bisher noch niemand nach der von dir gewünschten Funktionalität gesucht.
Hast du mal über workflow_ng nachgedacht? Vielleicht kriegst du was in der Richtung hin, wenigstens ne Warnung beim Löschen müsste darüber drin sein.
http://www.twitter.com/aschiwi
Drupal-Initiative e.V.
Ich habe jetzt mal zu beiden
am 02.09.2008 - 23:13 Uhr
Ich habe jetzt mal zu beiden CCK-Nodereference-Problemen ein Feature-Request auf drupal.org eingestellt.
Mal sehen, was passiert.
workflow_ng ist glaube ich nur für D5
Das workflow-Modul für D6 habe ich auch schon eingehend getestet, ist aber leider im Moment auch noch untauglich, weil Einstellungen im admin-Formular zur Berechtigung bzw. zum Bearbeiten und Löschen von bestimmten Rollen einfach ignoriert werden. Mein entsprechender Bug-Report wurde bisher nicht beantwortet.
Als Übergangslösung bleibt wohl erstmal nur, das Löschen der Nodes nur dem admin zu ermöglichen (unter Berechtigungen gibt es ab D6 auch delete_content als Options-Einstellung)