Zum Inhalt springen

RealURL-Links

Erstellt am 23. Februar 2006 · 3 Antworten · letzte Antwort am 10. März 2006

Tags: Frage

ColorfulSky ·

Hallo!

Ich hab - wie wohl noch mehr hier - das bekannte php-script mit den Flaggen in meine Seite eingebaut, um die Sprachumschaltung zu realisieren. Klappt prima! Nur ein kleines Problem: Wie bringe ich das Script dazu, auch schöne RealURLs zu verwenden, statt index.php?...-URLs?

Hab ihm Forum leider keine Lösung dazu gefunden, nur Fragen danach! 😉

Tschüss
Marcus

avid ·

Hier ein kleines workout - eine Lösung via typoscript:

Wir nehmen an dass 2 Sprachversionen zu implementieren sind: DE und EN:

im Haupttemplate im CONSTANTS-Feld(!!!) definieren wir einige Konstanten (die definierten Konstanten werden im Template mit einem $ und umgebenden {} curly-bracets angesprochen.

//--------------------------------------------------------------
//  default language (de: id=0)
//  index.php?id=123&L=0 oder index.php?id=123
//--------------------------------------------------------------

language_version = switch to English version
language_id = 0
language_key = de
foreignlanguage_id = 1



//--------------------------------------------------------------
//  foreign language (en: id=1)
//  wurde die englische Sprache aufgerufen? index.php?id=123&L=1
//--------------------------------------------------------------

[globalVar = GP:L > 0]
  language_version = Deutsche Version ansehen
  language_id = 1
  language_key = en
  foreignlanguage_id = 0
[global]

im Haupttemplate - SETUP-Feld sprechen wir einen Marker an und fügen dort den Umschalter zwischen den Sprachversionen ein (###LANGUAGE###):

//--------------------------------------------------------------
//  Language-specific settings
//--------------------------------------------------------------

config.sys_language_uid = {$language_id}
config.language = {$language_key}

# Registrieren der GET-Variable L
# somit wird diese bei Menülinks und korrekt programmierten Extensions immer automatisch angehängt
config.linkVars = L



//--------------------------------------------------------------
//  Language-menu
//  erzeugen des a-Tags: zb: <a href="index.php?id=123&L=1">switch to Enlish version</a>
//--------------------------------------------------------------

temp.language = COA
temp.language {
  10 = TEXT
  10.value = {$language_version}
  10.typolink {
    parameter.data = page:alias // TSFE:id
    additionalParams = &L={$foreignlanguage_id}
  }
}

page.10.marks.LANGUAGE < temp.language

Nun müssen wir der REALURL-extension noch mitteilen wie die Links am ende aussehen sollen. zB sollte aus http://typo3.org/index.php?id=123&L=1 das hier werden:

http://typo3.org/en/123/

dies wird in der localconf.php definiert:

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = 
	array(
		'preVars' => array(
			array(
				'GETvar' => 'L',
				'valueMap' => array(
					'de' => '0',
					'en' => '1',
					'de' => ''
				),
				'noMatch' => 'bypass',
			),
		),
		'fileName' => array (
			'index' => array(
				'page.html' => array(
					'keyValues' => array (
						'type' => 1,
					)
				),
				'_DEFAULT' => array(
					'keyValues' => array(
					)
				),
			),
		),
);
ColorfulSky ·

Hiho!

Hab eine ganz einfache Lösung gefunden, eine Extension, die macht was ich will: sr_language_menu

Tschüss
Marcus