Zum Inhalt springen

Zurück - Link

Erstellt am 25. April 2006 · 8 Antworten · letzte Antwort am 28. April 2006

Tags: Frage

Sutter ·

Hallo, ich möchte gerne einen Link
erzeugen, der den Besucher der Webseite
auf die von ihm zuvor aufgerufene Seite
zurückbringt.

Leider kann die Seite, wo ich diesen
Link einbinden will von mehreren anderen
Seiten mit unterschiedlichen PIDs
aus aufgerufen werden.

Meine Überlegung, das ganze quasi als
Mini-Menü zu lösen würde jedoch immer
nur auf das nächsthöhere Seitenbaumelement
verweisen, was nicht immer richtig ist.

Hat jemand eine Idee, wie man das lösen
könnte ?

Falls alle Stricke reissen werde ich wohl
die Seite kopieren müssen und alle Links
manuell anpassen müssen, dann sollte es
(wenn auch umständlich) auf alle Fälle
so funktionieren wie ich mir das vorstelle.
Leider gestaltet sich dann natürlich die Pflege des Inhalts etwas schwieriger.

theo ·

Was spricht gegen die älteste Funktion des Internets überhaupt?

<a href="javascript:history.back()">Zurück</a>
Sutter ·

Hallo theo,

vielen Dank für deine Antwort, leider funktioniert
diese Funktion bei mir nicht, ich vermute mal
dass Typo3 diese Funktion nicht kennt und ich diese
irgendwie in den Header mit einbinden muss ???

Beim Klick auf den Link öfnet sich bei mir
nur eine leere Seite.

Ein Javascript einzubinden ist ja recht einfach,
andere JavaScript Funktionen auf der Seite funktionieren
ganz prima. Nur welches Javascript müsste ich einbinden,
damit Typo3 in diesem Fall auf die Browser History
zurückgreifen kann? Gibt es so eine in Typo3 schon
oder müsste man diese erst uploaden ?

elv1s ·

Hallo,

also man könnte es so lösen...

folgendes im Typo3 Template / Typoscript

marks.BACK = IMAGE
marks.BACK {
file = fileadmin/images/icon/pfeil_links.gif
linkWrap = <a href="javascript: history.back ();">|</a>
}

im Html Template dann Marker ###BACK### anlegen.

Position kann dan z.B. noch über .css definiert werden.

hoffe das dies dir nützlich ist.

gruss
kasper

toyde ·
Sutter schrieb

Leider kann die Seite, wo ich diesen
Link einbinden will von mehreren anderen
Seiten mit unterschiedlichen PIDs
aus aufgerufen werden.

Wenn es eine einzelne Seite ist, dann nimm theo's Tipp und schmeiss den Einzeiler in ein HTML-Contentelement am Seitenende.

Bei mehreren Seiten macht ein Marker bzw. die Direktzuweisung im HTML-Template mehr Sinn.

Sutter ·

Vielen Dank,

nun funktioniert es fehlerfrei. Ich habe zunächst mal
den Link als einzelnes HTML Content Element reingesetzt:

<a class="linkInt" href="javascript: history.back ();"><- zurück</a>

Dabei habe ich dem Link gleich die Typo3 Klasse "linkInt" verpasst,
dann ist die Darstellung des Hyperlinks auch gleich erschlagen 😃

Anscheinend funktioniert die JavaScript Funktion history.back
(zumindest unter Typo 3.8.0) nicht, wenn man über den RTE in
den HTML Modus wechselt und dort den Link erstellt,
als HTML Content Element funktioniert es tadellos.

Vermutlich würfelt da der RTE einiges durcheinander.

Ich werde in einem ext Template meinen vorhandenen Marker
einfach als COA erweitern und als letztes Element diese
schöne Funktion dranhängen:

marks.XY = COA
...
10 = CONTENT
...
20 = HTML
20.value = <a class="linkInt" href="javascript: history.back ();"><- zurück</a>

^^ oder so ähnlich

Dann kann man das als ext Template ab einer bestimmten Tiefe des Seitenbaums
bequem dort einbinden wo man es benötigt. (das schöne ist dass er das Ext Template dann ja auch für alle Unterseiten übernimmt 🙂 )

Ich werd meinen Codeschnippsel noch posten wenn ich fertig bin.

Danke schön !!!!!!

Sutter ·

Hier noch schnell meine recht schöne Lösung des Problems:
(z.Bsp. als ext Template)

Der Zurück-Link wird dabei einfach an einen bestehenden Marker,
der ohnehin schon mit Content befüllt wird, unten angehängt.
Das ganze fuktioniert mit 3 Zeilen mehr natürlich auch mehrsprachig
(das hängt natürlich davon ab ob mehrere Sprachen implementiert sind)

marks.MARKER: gibt den bereits bestehenden Marker im Template an.
marks.MARKER = COA ermöglicht eine Erweiterung des Markers im
TypoScript (10.,20., 30.) ...
where = colPos = 2: gibt die Inhalts Spalte an, 2 ist in diesem Beispiel
der Seiteninhalt im Bereich "Rand".
languageField = sys_language_uid: liest den zur Sprache zugehörigen Inhalt aus
[globalVar = GP:L=1]: Konfiguration weiterer Sprachen, in meinem Beispiel
ist L=0 deutsch, L=1 englisch.

seite.10 {
                marks.MARKER = COA
                marks.MARKER {

                          10  = CONTENT
                          10 {                             
                                      table = tt_content
                                      select {
                                                   where = colPos = 2
                                                   orderBy = sorting
                                                   languageField = sys_language_uid
                                      }
                          }

                          20 = HTML
                          20.value = <a class="linkInt" href="javascript: history.back();"><- zurück</a>
                }
}

[globalVar = GP:L=1]

seite.10.marks.MARKER.20.value = <a class="linkInt" href="javascript: history.back();"><- back</a>

[global]

Mit ein paar kleinen Anpassungen lässt sich das ganze natürlich
auch für andere Marker verwenden, ohne einen neuen Marker ins
HTML Template schreiben zu müssen.

elv1s ·

Hallo,

danke für deine code...

bei mir funkt. es aber besser mit

where colPos = 2

statt

where = colPos = 2

Gruss
kasper

Sutter ·

Das ist natürlich wahr, da scheint sich wohl ein Fehler
eingeschlichen zu haben, ich werd das gleich mal korrigieren

Danke für den Hinweis !

Hier der korrigierte Code: (wieso kann ich denn meinen Eintrag oben eigentlich nicht mehr bearbeiten ? :o )

seite.10 {
           marks.MARKER = COA
           marks.MARKER {
 
                          10  = CONTENT
                          10 {                             
                                 table = tt_content
                                 select {
                                           where colPos = 2
                                           orderBy = sorting
                                           languageField = sys_language_uid
                                 }
                          }
 
                          20 = HTML
                          20.value = <a class="linkInt" href="javascript: history.back();"><- zurück</a>
           }
}
 
[globalVar = GP:L=1]
 
seite.10 {
           marks.MARKER.20.value = <a class="linkInt" href="javascript: history.back();"><- back</a>
}
 
[global]