Zum Inhalt springen

realurl Problem

Erstellt am 16. September 2007 · 4 Antworten · letzte Antwort am 23. September 2007

Tags: Frage

endstille ·

Hallo!

Ich habe mir ne Userfunction für realrul geschrieben, die den Pfad ermittelt, und zwar ist es hierbei so, dass es eigentlich keinen Pfad gibt, sondern egal wie tief der Verzeichnisbaum ist, es soll immer eine Zieldatei mit einem festgelegten Namen angezeigt werden (also z.B. domain.com/file1.html, domain.com/file2.html). Das funktioniert soweit auch.
Da ich aber scheinbar (jedenfalls habe ich nix anderes gefunden) nur eine Nutzerfunktion für den Pfad angeben und de facto nichts für den FileName angegeben/konfiguriert habe, hängt mir das realurl immer noch einen Slash hinten dran, da käme ja normalerweise der Dateiname.
Wie bekomme ich den weg?

Kann man ausserdem realurl für externe URLs ausschalten? Ich möchte die externen Links nicht umschreiben sondern direkt anzeigen.

Vielen DanK!

endstille ·

Naja, ich habe es nun gelöst.
Standardendung .html wollte ich ja nicht haben, sondern den gesamten Pfad zu einer Seite vom Nutzer konfigurierbar. Den Slash am Ende habe ich nun direkt im realurl Plugin entfernt.
Nach längerem googeln usw. fand ich auch raus, dass viele Leute Probleme mit externen URLs in Verbindung mit realurl haben. Um da zu fixen haben ich einfach in der TSLib des Menus einen kleinen Hook eingebaut, übrigens gleich auch für Shortcuts. Jetzt geht alles prima!

just2b ·
endstille schrieb

Nach längerem googeln usw. fand ich auch raus, dass viele Leute Probleme mit externen URLs in Verbindung mit realurl haben. Um da zu fixen haben ich einfach in der TSLib des Menus einen kleinen Hook eingebaut, übrigens gleich auch für Shortcuts. Jetzt geht alles prima!

und warum postest du den nicht auch hier?
georg

endstille ·

Durchaus wahr, sorry.
Angepasst wurde typo3/sysext/cms/tslib/class.tslib_menu.php
Anhand des Codes sollte klar sein, wo es rein kommt.

function link($key,$altTarget='',$typeOverride='') {

...

// Override URL if using "External URL" as doktype with a valid e-mail address:
if (...) {
...
}

// adds the protocol before external links to work with realurl
		if ($this->menuArr[$key]['doktype'] == 3) {
			// replace '%2f' with a real slash
			 $LD['totalURL'] = str_ireplace('%2f', '/', $LD['totalURL']);
			
			switch (intval($this->menuArr[$key]['urltype'])) {
				case 1:
					// http
					$LD['totalURL'] = 'http://' . $LD['totalURL'];
					break;
				case 2:
					// ftp
					$LD['totalURL'] = 'ftp://' . $LD['totalURL'];
					break;
				case 4:
					// https
					$LD['totalURL'] = 'https://' . $LD['totalURL'];
					break;
			}
			
			if (strlen($this->menuArr[$key]['TSconfig']) > 0) {
				$cs = trim($this->menuArr[$key]['TSconfig']);
				if (strpos($cs, 'cs_realurl_enhancer.pageTarget = _blank') > -1) {
					$LD['target'] = '_blank';
				}
			}
		}
		// end of hack

...
}

Da externe Links immer im selben Fenster aufgehen habe ich auch nen Hook dafür eingefügt, so dass sie im neuen Fenster öffnen, iehe oben. In der TSConfig der Externen Url muss man dann "cs_realurl_enhancer.pageTarget = _blank" angeben und schon geht es. Die Config kann man natürlich auch anders nennen 😉

Das mit den Shortcuts war ein Denkfehler, das war in meiner realurl Konfiguration.