Suchen aller Knoten, auf die nicht durch einen Menüeintrag oder einen anderen Knoten verwiesen wird

8

Beim Erstellen des Inhalts für eine Website sind verwaiste Inhaltsknoten entstanden, mit denen von keinem Ort aus verknüpft wird. Ich möchte diese finden und untersuchen. Überraschenderweise kann ich dafür kein Modul finden.

Winziges hypothetisches Beispiel: Ich baue eine Broschüren-Site. Jemand hat eine "Kontakt" -Seite geschrieben, jemand anderes hat ein "Über uns" geschrieben und jemand anderes hat "Wegbeschreibung" geschrieben. Die Person, die "Wegbeschreibung" schreibt, hat vergessen, sie in einen Menülink einzufügen oder einen Link von "Über uns" zu "Wegbeschreibung" hinzuzufügen. "Richtungen" ist also verwaist: Es gibt keine Links dazu. Ich möchte alle diese Knoten finden, damit ich herausfinden kann, was ich mit ihnen machen soll.

Dan Halbert
quelle
Sehen Sie diese Knoten, wenn Sie alle Knoten auflisten?
BetaRide
Ja. Sie haben nichts Besonderes. Sie sind zufällig in Bezug auf Menüs und Links verwaist.
Dan Halbert
Gibt es einen Grund, warum Sie sie nicht von der allgemeinen Inhaltsseite löschen können?
BetaRide
Nein, aber das ist nicht das Problem. Von beispielsweise allen Basisseiten auf der Inhaltsseite möchte ich wissen, welche Waisen sind und welche nicht. Ich werde mir die Waisenkinder ansehen und sehen, ob ich Inhalte darin habe. Wenn nicht, werde ich sie löschen. Das Problem ist, dass ich nicht anhand der Liste erkennen kann, welche Waisen sind. Zum Beispiel hat einer meiner Redakteure möglicherweise eine "Kontakte" -Seite geschrieben, aber wir haben vergessen, sie in ein Menü aufzunehmen, und daher ist sie derzeit nur zugänglich, wenn Sie die URL kennen.
Dan Halbert
Interessieren Sie sich nur für vorhandene Module oder wären Sie bereit, ein benutzerdefiniertes Modul zu schreiben, wenn kein Modul das tut, wonach Sie suchen?
Kiamlaluno

Antworten:

3

Für Links aus dem Menüsystem:

Menüknotenansichten kommen dem, was Sie anfordern, sehr nahe, benötigen jedoch eine Codierung .

Für Links aus dem Knotenkörper (Feldern):

Das Suchmodul speichert Referenzen zwischen Knoten. Dies kann von Ansichten verwendet werden, um eine "Backlinks" -Ansicht zu erstellen. Für Drupal 5 gab es hierfür ein separates Modul mit einigen zusätzlichen Erläuterungen, da diese Funktion in D6 (Ansichten 2/3) in das Ansichtsmodul integriert ist.

Zusammenfassung

Ansichten + VBO + Menü Knoten API + Menü Knoten Views (+ benutzerdefinierte Filter / Patch oder Ansicht mit benutzerdefinierten Abfrage )

an Daniel
quelle
Dies ist hilfreich, obwohl keine Links zu Knoten aus dem Körper (oder was auch immer) anderer Knoten verarbeitet werden. Ich denke, es ist so gut wie ich es bekommen werde - danke.
Dan Halbert
Hoppla, ich habe diesen Teil verpasst. Die fehlenden Informationen wurden jetzt hinzugefügt.
Daniel
4

Ich brauchte dies für eine Kundenanfrage, also entschied ich mich, es ohne zusätzliche Module zu versuchen und mein MySQL ein wenig zu pushen. Damit bin ich gelandet.

Aus Gründen der Übersichtlichkeit wird hier nur eine Liste von NIDs angezeigt, denen KEIN Menüelement zugeordnet ist.

Ich habe auch eine WHERE-Klausel hinzugefügt, um Inhaltstypen einzuschränken, da einige Inhaltstypen aufgrund der Art und Weise, wie sie erstellt wurden, natürlich ausgeschlossen werden.

SELECT n.nid, n.type, n.title, n.status
FROM node AS n
WHERE (n.type = 'article' OR n.type = 'page')
AND n.nid NOT IN (
  SELECT REPLACE(link_path, "node/", "") AS nid
  FROM menu_links
  WHERE SUBSTRING(link_path, 6, LENGTH(link_path)) REGEXP "^[0-9]+$" 
);
Simon Fryer
quelle
Schöne Lösung! +1 für keine neuen Module.
Sam152
2

Haben Sie Views ausprobiert ? Sie müssen eine Ansicht für die verwaisten Knoten erstellen, die von Ihrer Taxonomie und Ihren Feldern abhängt.

David Barratt
quelle
Ich suche beispielsweise nach Basisseitenknoten, die keinen Menüeintrag haben oder von keinem anderen Knoten aus verlinkt sind. Sie haben keine Taxonomie. Es gibt keine View-Abfrage, die diese findet.
Dan Halbert
Ich hatte den Eindruck, dass Sie in Ansichten (nicht) Logik verwenden können. Man könnte also so etwas wie Knoten sagen, bei denen das xyz-Taxonomiefeld leer ist.
David Barratt
Diese Knoten haben keine Taxonomiefelder. Ich möchte nur wissen, ob sie in einem Menü zugänglich sind oder ob sie über den Inhalt eines anderen (zugänglichen) Knotens verlinkt sind.
Dan Halbert
2

Sie können den Menüabschnitt ziemlich einfach mit einer benutzerdefinierten Abfrage ausführen.

SELECT * 
FROM node
WHERE node.type = 'page'
AND node.nid NOT IN (
 SELECT nid
 FROM menu_node
)
ummdorian
quelle