Tags von gelöschten Nodes werden nicht mitgelöscht
am 01.06.2010 - 19:40 Uhr in
Hallo
Mir ist vor kurzem aufgefallen das Drupal die Tags von gelöschten Nodes nicht mit löscht, sie sind dann immer noch aufrufbar und liefern dann zum Beispiel die Seite - Kein Eintrag zu dem Thema - zurück, und in der Sitemap bleiben die Nodes auch komplett erhalten was ja nicht besonders gut ist wenns den Beitrag nicht mehr gibt. (Google Sitemap) Außerdem ist mir aufgefallen das bei nicht veröffentlichten Beiträgen die Tags schon auf der Haupseite angezeigt werden. Bisher habe ich keine Lösung dazu gefunden. Kann mir da vielleicht jemand helfen?
Mfg Thomas
- Anmelden oder Registrieren um Kommentare zu schreiben

Im SQL kann das ganze mit
am 01.06.2010 - 22:29 Uhr
Im SQL kann das ganze mit folgendem Befehl gemacht werden:
db_query("DELETE FROM td USING {term_data} td LEFT JOIN {term_node} tn ON td.tid = tn.tid WHERE tn.tid IS NULL AND td.vid = %d", $vid);
Könnte man auch mal in ein Modul packen, dass die Terms in einem Cronlauf bereinigt. Sollte Interesse bestehen, bitte kurz auf den Post melden, dann mach ich das mal und stelle es zur Verfügung.
Viele Grüße
Manuel
Tags
am 02.06.2010 - 13:38 Uhr
Hallo
Ich habs mal im phpMyadmin probiert da bringt er mir einen Fehler.
Es scheint einen Fehler in Ihrer MySQL-Abfrage zu geben. Die MySQL-Fehlerausgabe, falls vorhanden, kann Ihnen auch bei der Fehleranalyse helfen.
ERROR: Nicht geschlossene Anführungszeichen @ 116
STR: "
SQL: DELETE FROM td USING {term_data} td LEFT JOIN {term_node} tn ON td.tid = tn.tid WHERE tn.tid IS NULL AND td.vid = %d", $vid,
SQL-Befehl:
DELETE FROM td USING {term_data} td LEFT JOIN {term_node} tn ON td.tid = tn.tid WHERE tn.tid IS NULL AND td.vid = %d", $vid,
MySQL meldet:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '} td LEFT JOIN {term_node} tn ON td.tid = tn.tid WHERE tn.tid IS NULL AND td.vid' at line 1
Wenn Sie das in einem Modul vereinen könnten wäre das super.
Vielleicht wissen Sie auch wie ich das machen kann das Tags von Nodes welche noch nicht veröffentlicht sind - das diese auch noch nicht im Tagcloud angezeigt werden.
Ich danke schon mal
Mfg Thomas
Hallo, um das Query in MySQL
am 02.06.2010 - 14:30 Uhr
Hallo,
um das Query in MySQL einzufügen muss es natürlich vom "Drupal-Syntaxt" befreit werden:
DELETE FROM td USING term_data td LEFT JOIN term_node tn ON td.tid = tn.tid WHERE tn.tid IS NULL AND td.vid = [IHRE VID DES NODES EINSETZEN]
Ich werde mal schauen, wenn ich dazu Zeit habe, das Modul zu erstellen.
Für Ihre zweite Anforderung müsste man etwas mehr Programmieren.
Viele Grüße
Manuel