Geld verdienen mit

Adserver 120x120
AffiliWelt.net  - Geldverdienen ganz einfach

Drupal Node Reference Modul - Links auf nicht veröffentlichte Nodes verbergen

24. Januar 2009

Das vorgestellte Snippet verhindert die Verlinkung auf unveröffentlichte Nodes bei Drupals Nodes Reference Modul. Statt des verlinkten Titels wird nur der unverlinkte Titel ausgegeben, sofern der referenzierte Node noch nicht veröffentlicht ist.

Mit dem CCK Zusatzmodul Node Reference lässt sich sehr bequem auf andere Nodes verlinken. Je nach Verwendung ist das nicht nur Nutzerfreundlich sondern auch gut für die interne Verlinkung und damit u. U. auch fürs Ranking. Problematisch wirds, wenn man noch etliche unveröffentliche Nodes in der Datenbank hat, die erst nach und veröffentlicht werden können/sollen, aber bereits referenziert werden müssen. Das Node Reference Modul produziert in dem Fall etliche Links auf 404-Seiten, und das ist nicht nur wenig Nutzerfreundlich, es gibt auch Ärger mit Google.

Abhilfe schafft das unten abgedruckte Snippet. In der Node Reference Version 5.x-1.7 ist es unmittelbar vor der switch ($formatter) Anweisung in Zeile 192 von nodereference.module einzufügen. In anderen Versionen mag die Anweisung in einer anderen Zeile liegen oder das Problem bereits behoben sein.


if (($formatter == 'default') && ($referenced_node = node_load($item['nid']))) {
  if ($referenced_node->status == 0) {
    $formatter = ‘plain’;
  }
}

Das Snippet prüft, ob als Formatieroption "Titel mit Link" angegeben ist und ob sich der referenzierte Node laden lässt. Wenn der Status des referenzierten Nodes "unveröffentlicht" ist, wird die Formatierung auf "Titel ohne Link" umgestellt. Damit werden keine Links mehr pruduziert, die für normale Nutzer ins Leere führen.

 

englisch short version

The use of cck nodereference modul can produce dead links if you refer unpublished nodes. The snippet above checks if the node you refer to is "unpublished" and if so, it sets the formating option to "plain" wich just shows the title w/o any link.

This snippet is written for Node Reference Module version 5.x-1.7 and has to be added around line 192 of nodereference.module, just before switch ($formatter). In other versions the line may vary or the problem may already been solved.

 



Schreib einen Kommentar