Zurück-Link erzeugen
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 02.10.2008 - 16:32 Uhr in
Hallo,
Gibt es eine Möglichkeit dynamisch einen Link "zurück zur Übersicht" zu erzeugen? Über den Weiterlesen-Link kommt man ja zur Detailansicht und dort soll man wieder zurück zur Übersicht kommen. Ich könnte zwar einfach ins Template fest den Pfad reinschreiben, aber wenn man z.B. (wie in meinem Fall) mal den Pfad zur Ansicht ändert dann sollte auch automatisch der zurück-Link angepasst werden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst einfach ..
am 02.10.2008 - 18:02 Uhr
.. über die Funktion _link_alter oder _nodeapi den zusätzlichen Link einblenden. Ich habe das einfach mit einem js-back gelöst.
Gruß
UwBach
Ich habe in meiner
am 02.10.2008 - 18:04 Uhr
Ich habe in meiner page.tpl.php einfach folgendes am Content Ende eingefügt ...
<p><a class="back" href="javascript:history.back()">Zurück zur letzten Seite </a></p>
Funktioniert tadellos
-------------------------------------
Öfter mal was neues ... warum nicht mal DRUPAL :-) Meinen "Drupal Kampf" als Anfänger schildere ich mal unter http://www.thoor.de
UwBach schrieb .. über die
am 02.10.2008 - 19:57 Uhr
.. über die Funktion _link_alter oder _nodeapi den zusätzlichen Link einblenden. Ich habe das einfach mit einem js-back gelöst.
Gruß
UwBach
wie müsst ich denn das benutzen? im netz steht ja nicht grad so viel dazu.
mein link zur detailseite is z.b. so: "artikel/titel-des-artikels" und der link soll dann "artikel" sein.
mit JS möchte ich es nicht lösen.
Hier eine abgespeckte Version ..
am 02.10.2008 - 22:24 Uhr
Lege einen Ordner sites/all/modules/manipulation an
Speicher den Code unter manipulation.module
<?php
//; $ Id: menumanipulation.module, UwBach, 2008/04/14 $
/**
* @file Manipulation der Anwendung
*
*/
/**
* Funktion um zusätzliche Informationen an den Ursprungslink zu hängen
*/
function manipulation_link_alter(&$links, $node)
{
// Für die Folgeseite des Teasers den Link erweitern
if(isset($links->links) and array_key_exists('node_read_more', $links->links))
$links->links['node_read_more']['href'] = $links->links['node_read_more']['href'].'/back';
} // END manipulation_link_alter
/**
* Erlaubt Inhalte bestimmten Seiten hinzuzufügen
*/
function manipulation_nodeapi(&$node, $op, $teaser, $page)
{
// Fügt gekennzeichneten Seiten ein JS-basierten Zurück-Link hinzu
if(substr_count($_GET['q'], 'back') and $op == 'alter')
$node -> body .= '<p><a href="javascript:history.back()" name="zurueck">zur vorigen Seite</a></p>';
// Der Benutzername soll immer ersetzt werden, nur beim Bearbeiten der Profile nicht
if($op == 'view')
{
$author = user_load(array('uid' => $node -> uid));
$node -> name = $author -> real_name ? $author -> real_name : $node -> name;
}
} // END manipulation_nodeapi()
Speicher den Code unter manipulation.info
; $ Id: manipulation.info, UwBach, 2008/04/22 $
name = manipulation
package = ""
version = "$Name$"
datestamp = "1208853267"
Ich habe das unter Drupal 5 geschrieben, das .info-File muss auf die aktuelle Syntax angepasst werden. Damit hast du aber erst mal eine Basis mit der du weiter machen kannst. Ersetze einfach das JS in nodeapi() durch den Referer.
Alles weitere kannst du unter hook_nodeapi und hook_link_alter finden.
Gruß
UwBach
Hi, danke dir für die nette
am 02.10.2008 - 22:55 Uhr
Hi,
danke dir für die nette Hilfe. Das hilft mir schon weiter.
Wenn natürlich der Referrer nicht gesendet wird, habe ich auch en Problem.
Wenn der Node vom Teaser ..
am 03.10.2008 - 08:49 Uhr
.. aufgerufen wird muss der Referer mit gesendet werden.
Es war ja die Anforderung das vom Node zur Teaser-Übersicht das zurück kommen sollte. Wenn du dir den Code genauer anschaust siehst du das in der _nodeapi der Link nur dann ausgeführt wird wenn auch der Eintrag "back" mit übergeben wird. Der wird allerdings nur in der Teaser-Ansicht erzeugt, ansonsten gibt es das "node_read_more" nicht.
Es ist also kein Problem und hat einige Vorteile zu pauschalen Einträgen in der node.tpl. Allerdings hat es auch den Nachteil das der Code etwas mehr Laufzeit benötigt, was allerdings erst bei hoch frequentierten Seiten ins Gewicht. Die Laufzeitunterschiede sind relativ gering.
Gruß
UwBach