[gelöst] CCK: Node Reference Feld liefert nur vollständiges HTML
am 13.09.2010 - 17:00 Uhr in
Hallo,
ich versuche nun schon einige Zeit den Output eines Links, der mittels Node-Reference (CCK) einen Teaser mit einer Seite verlinkt, anzupassen. Die Verlinkung funktioniert soweit auch ohne Probleme allerdings soll dieser Link zwar auf die Seite verlinken aber nicht den Seitenname als Linktext nutzen. Ausserdem wäre eine separate CSS-Klasse nicht verkehrt.
Ich habe versucht mir das Array ($field_reference) zu zerlegen und mir den Link dann alleine zu bauen aber leider finde ich keinen Eintrag im Array der nur ein "http://link/zur/seite" enthält. Ich kann nur auf den schon von Drupal generierten Link zugreifen.
Das field_reference-Array sieht so aus:
Array
(
[0] => Array
(
[nid] => 42
[safe] => Array
(
[nid] => 42
[title] => Über uns
[status] => 1
)
[view] => Über uns
)
)
Auch im $node Array kann ich nichts entsprechendes finden.
Ich habe mir für diese Art von Teaser einen eigenen Inhaltstyp angelegt und Theme auch nur diesen mit der node-static_block.tpl.php. Das ist der Inhalt der Datei.
<?php print $content; ?>
<?php print $field_reference;?>
In der CCK Konfig habe ich den field_reference wie folgt eingestellt:
Gruß Steffen
Anhang | Größe |
---|---|
Bildschirmfoto 2010-09-13 um 17.57.48.png | 35.39 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
l-Funktion
am 13.09.2010 - 21:22 Uhr
Hallo.
Du hast in dem Ergebnis-Array die nid des Nodes, kannst Dir also den internen Verweis zum Beitrag ("node/x") aus dieser Information zusammenbauen.
Dabei behilflich ist dann auch die [api:l] Funktion:
<?php
print l($field_reference[0]['safe']['title'], 'node/'. $field_reference[0]['nid']);
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke! Die l()-Funktion ist
am 14.09.2010 - 12:09 Uhr
Danke! Die l()-Funktion ist mir zwar schon aufgefallen aber bisher habe ich Sie noch nicht benutzt. Aber unabhängig davon habe ich das Problem mit einem anderem Ansatz gelöst. Ich habe einfach den Teaser des Nodes gefüllt lasse den dort anzeigen. Den Link zum eigentlichen Inhalt (more link) habe ich mit dem Modul Read More Link Modul angepasst. Vielleicht nicht die beste Lösung aber zumindest eine die Funktioniert.