Zum Inhalt springen

Link to Top

Erstellt am 5. Juni 2006 · 3 Antworten · letzte Antwort am 19. November 2007

Tags: Frage

Unbekannter Benutzer ·

Keywords: linktotop, templavoila

In diesem HowTo wird beschrieben, wie man die LinkToTop Funktion nutzen kann.

Folgendes Problem: Wenn man mit Templavoila ein Template erstellt und dort statische Links verwendet, werden diese von Templavoila angepasst.

Wenn man also den Link <a href="#top">Link to Top</a> erstellt, wird daraus <a href="fileadmin/templates/...html#top">Link to Top</a>.

Hier mein Weg, um diese Funktion zu umgehen:

Wir erstellen eine Datei: user_function.php

<?PHP
class user_function {
	function getLinkToTop() {
		$request_uri = $_SERVER['REQUEST_URI'];
		$path = "<a href='" . $request_uri . "#top'>Seitenanfang</a>";
		
		return $path;
	}
}
?>

Diese Funktion liest die aktuelle URL aus und hängt dahinter ein #top

Jetzt diese Datei auf den Server laden. z.B. upload/media/scripts/user_function.php

Jetzt muss diese Datei in unser Template eingebunden werden.

Wir gehen in unser Setup Feld und tragen folgendes ein:

page.includeLibs.datei = upload/media/scripts/user_function.php

Unter TemplaVoila erstellen wir nun ein neues Data Element. Als Editing Type wählen wir TypoScript Object Path und geben dem Objekt den Namen lib.link_to_top. Dann mappen wir das Objekt an die Stelle, wo unser Link später im Template auftauchen soll. Speichern.

Nun gehen wir wieder in unser Template Setup Feld und weisen diesem neuen Objekt seinen Inhalt zu:

link.30 = TEXT
link.30.postUserFunc = user_function->getLinkToTop
lib.link_to_top < link.30

Speichern, Cache löschen, glücklich sein.

Fragen und Verbesserungsvorschläge sind gerne gesehen.

Gruß,
Christian[/i]

peterge ·

Folgendes Typo-Script macht dasselbe ohne eine User-Function:

lib.link_to_top = TEXT
lib.link_to_top.value = zum Seitenanfang
lib.link_to_top.typolink {
	parameter.data = page:uid
	section = top	
	returnLast = 1
}

Peter

jost ·

Peter schrieb:

Folgendes Typo-Script macht dasselbe ohne eine User-Function:

Stimmt. Sehr elegant.

Nur eine Ergänzung: Christian hat in seinem PHP-Code die gesamten URL-Parameter berücksichtigt ($_SERVER['REQUEST_URI']). Das ist u.U. wichtig bei Extensions wie tt_news: in der Single-Ansicht werden einige URL-Parameter benötigt. Die gehen mit dem Code von Peter verloren.

Daher hier noch eine andere Lösung:

lib.link_to_top = TEXT
lib.link_to_top.value = zum Seitenanfang
lib.link_to_top.typolink {
    parameter.dataWrap = {getIndpEnv:TYPO3_REQUEST_URL}#top
}

Viele Grüße

jost

Tante Jensen · · Beste Antwort

Ja, sehr schick.

die letzten beiden Versionen funktionieren bei mir aber leider nur im IE (die erste hab ich nicht ausprobiert).
Firefox reagiert darauf nicht, weil es ein Verweis auf den Anker "top" ist, den es ja nicht gibt.

Wer das gleiche Problem hat, kann nun:

1. entweder was mit Javascript machen, auf dass der Link dann so aussieht:

<a href="#top" onClick="self.scrollTo(0, 0); return false;">Nach oben</a>

2. oder (weil sie/er nicht rausfriemeln will, wie das in TS aussehen muss):
dem obersten Element auf der Seite die id="top" geben 😃

So, und meine Quellen geb ich auch brav an:
http://www.designerzone.de/webdesign-tipps-firefox-nach-oben-link.php