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 - 14: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 - 14: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 - 14: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 - 14: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 - 10: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 - 09: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 - 09: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 - 10: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

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 17 Stunden
  • Hey danke
    vor 2 Tagen 11 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 6 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 15 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 18 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 5 Tagen
  • In der entsprechenden View
    vor 1 Woche 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 5 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
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