Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Löschen von Nodes verhindern bei Bedingung

Eingetragen von dreipunktnull (39)
am 30.06.2009 - 15:03 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo zusammen,

ich suche eine Lösung, um das Löschen einer Node unter bestimmten Bedingungen zu verhindern. Konkret habe ich mehrere eigene Node Typen, die auf andere Nodes per nid verweisen können. Wenn jetzt ein User versucht, eine Node, auf die verwiesen wird, zu löschen, soll dies eben nicht möglich sein und eine entsprechende Meldung ausgegeben werden. Die entsprechende Abfrage und das Ausgeben der Fehlermeldung funktioniert sowohl in hook_delete() als auch in hook_nodeapi(), nur lässt sich dabei die Löschung an sich nicht unterbinden.

Wenn ich über hook_access() gehe, kann ich dann die Fehlermeldung beeinflussen?

Vielen Dank im Voraus für Eure Hilfe.

Grüße,
Björn

‹ [gelöst] Eigener Userpicture Upload Wie könnte man das realisieren? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

cancel delete

Eingetragen von stBorchert (6003)
am 30.06.2009 - 15:22 Uhr

Moin.
Das ist leider momentan noch nicht möglich. Für D7 ist eine "Delete API" angedacht (inl. "undo"), jedoch auch noch nicht wirklich einsatzfähig.
Möglicherweise könntest Du die Schaltfläche zum Löschen ganz einfach über hook_form_alter ausblenden.?

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, danke für Deine

Eingetragen von dreipunktnull (39)
am 30.06.2009 - 15:30 Uhr

Hallo,

danke für Deine Antwort. Daran habe ich auch schon gedacht, aber leider greift diese Lösung nur für das Edit Formular. Mal sehen, ob das eine Alternative sein könnte.

Grüße,
Björn

  • Anmelden oder Registrieren um Kommentare zu schreiben

löschen verhindern

Eingetragen von stBorchert (6003)
am 30.06.2009 - 15:46 Uhr

Habs gerade nochmal im IRC gegenecheckt: funktioniert nicht.
Du könntest höchstens versuchen, sämtliche Formulare, die das Löschen ermöglichen, zu verändern. So, dass die entsprechenden Nodes da nicht mehr auftauchen. Das ist aber ziemlich hacky.

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schade

Eingetragen von dreipunktnull (39)
am 01.07.2009 - 11:36 Uhr

Danke nochmals. Ich werde es wohl so machen, wie Du es vorgeschlagen hast, d. h. den Löschen Button zumindest deaktivieren und den Zugriff auf admin/content/node blockieren. So werden die User auf mögliche Inkonsistenzen auch im Vorfeld hingewiesen ohne den Button geklickt zu haben. Sooo hacky finde ich das eigentlich garnicht.

Grüße,
Björn

Edit: Ich habe es jetzt einmal mit hook_access() versucht. Dabei wird meine Fehlermeldung bei return FALSE allerdings schon angezeigt, wenn man den/die(?) Node editiert und der Löschen Button wird auch schon ausgeblendet, was eigentlich auch logisch ist. Damit kann ich aber gut leben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das geht mit dem Hook_nodeapi ..

Eingetragen von UwBach (310)
am 03.07.2009 - 10:51 Uhr

.. indem du die $op == "delete" abfragst und im einfachsten Fall einfach mit einer drupal_goto() wieder auf die Seite zurückgehst. Nett ist dann zumindest eine Meldung einzublenden.

Gruß

UwBach

  • Anmelden oder Registrieren um Kommentare zu schreiben

nodeapi

Eingetragen von stBorchert (6003)
am 03.07.2009 - 10:58 Uhr

Blöd nur, dass zu diesem Zeitpunkt bereits DELETE FROM {node} WHERE nid = %d und DELETE FROM {node_revisions} WHERE nid = %d ausgeführt wurden (siehe node_delete()), die eigentlichen Daten der Node und alle Revisionen also schon gelöscht sind.
Da bringt dann auch ein drupal_goto nicht mehr viel.

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für den Hinweis

Eingetragen von dreipunktnull (39)
am 03.07.2009 - 11:13 Uhr

Danke für den Hinweis. Werde ich sofort ausprobieren. Diese Variante hatte ich bisher außen vorgelassen, weil die Doku sagt:

Zitat:

If you are writing a node module, do not use this hook to perform actions on your type of node alone. Instead, use the hooks set aside for node modules, such as hook_insert() and hook_form().

Aber das habe ich wohl fehlinterpretiert.

Edit: Geht nicht. Die Löschung wird dadurch nicht unterbunden (stBorchert war schneller).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
Weiter

Neue Kommentare

  • Danke ich werde mir die
    vor 1 Woche 3 Tagen
  • Vielen Dank für Ihren
    vor 1 Woche 6 Tagen
  • Composer ist sehr ratsam
    vor 2 Wochen 1 Tag
  • Vielen Dank für den
    vor 2 Wochen 3 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 2 Wochen 4 Tagen
  • Gut gemacht
    vor 2 Wochen 4 Tagen
  • Layout Builder etc. z.B. für Landing Pages
    vor 2 Wochen 4 Tagen
  • Links
    vor 2 Wochen 6 Tagen
  • Moin,wow, sehr gutes
    vor 3 Wochen 19 Stunden
  • Dass ist eine spannende
    vor 3 Wochen 1 Tag

Statistik

Beiträge im Forum: 250316
Registrierte User: 20563

Neue User:

  • drupalthemes
  • rofilm
  • Cruzorerm

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association