Zum Inhalt springen

realurl Sprachweiche

Erstellt am 22. März 2011 · 1 Antwort · letzte Antwort am 23. Februar 2012

Tags: RealURL, Frage

mentomedia ·

Hallo,

ich benutze Realurl auf einer zweisprachigen Website, funktioniert auch ganz Prima. Problematisch wird es erst in Kombination mit tt_products, hier stehen die Daten die ich zur Generierung der URL brauche in verschiedenen Datenbanken. Die Logik habe ich für beide Sprachversionen auch hinbekommen nur kann ich Realurl nicht beibringen für deutsch Logik 1 und für englsich Logik 2 zu benutzen.

Im Prinzip brauche ich eine Fallunterscheidung:
Für Sprache Deutsch mach:

'products' => array(
	array(
		'GETvar' => 'tt_products[product]',
		'lookUpTable' => array(
			'table' => 'tt_products',
			'id_field' => 'uid',
			'alias_field' => 'title',
			'addWhereClause' => ' AND NOT deleted',
			'useUniqueCache' => 1,
			'useUniqueCache_conf' => array(
				'strtolower' => 1,
				'spaceCharacter' => '-',
			),
		),
	),
),

Für Sprache Englisch mach:

// products
'products' => array(
	array(
		'GETvar' => 'tt_products[product]',
		'lookUpTable' => array(
			'table' => 'tt_products_language',
			'id_field' => 'prod_uid',
			'alias_field' => 'title',
			'addWhereClause' => ' AND NOT deleted',
			'useUniqueCache' => 1,
			'useUniqueCache_conf' => array(
				'strtolower' => 1,
				'spaceCharacter' => '-',
			),
		),
	),
),

Vielleicht kennt sich da ja jemand mit aus und kann mir helfen, wäre echt super!

hahni ·

Ich habe meine "localconf.php" von realURL mit ein bisschen PHP-Code gewürzt. Dann werden die beiden URLs in der jeweils gültigen Sprache angezeigt und das funktioniert auch wunderbar. Wechselt man bei mir aber nun über den Sprachumschalter, dann wird das Produkt nicht auf der EN-Seite und umgekehrt angezeigt. Also ich bin eine kleine Stufe weiter als du 😉! Hier noch meine Konfiguration als evtl. Anregung für dich und unser Problem:

<?php
/*
RealURL Config mit folgenden Extensionanpassungen:
- indexedsearch
- tt_news
- tx_ablinklist
- ve_guestbook
- RSS Feed
- 
*/

if (!eregi('/en/', $_SERVER['REQUEST_URI']))
{
	$tt_products_table = "tt_products";
	$tt_products_uid = "uid";
}
else
{
	$tt_products_table = "tt_products_language";
	$tt_products_uid = "prod_uid";
}

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
	'_DEFAULT' => array(
		'init' => array(
			'enableCHashCache' => 1,
			'appendMissingSlash' => 'ifNotFile',
			'enableUrlDecodeCache' => 1,
			'enableUrlEncodeCache' => 1,
		),
		'redirects' => array(),
		'preVars' => array(
			array(
				'GETvar' => 'no_cache',
				'valueMap' => array(
					'nc' => 1,
				),
				'noMatch' => 'bypass',
			),
			array(
				'GETvar' => 'L',
				'valueMap' => array(
					'en' => '1',
					'de' => '0',
				),
				'valueDefault' => 'de',
				'noMatch' => 'bypass',
			),
		),
		'pagePath' => array(
			'type' => 'user',
			'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
			'spaceCharacter' => '-',
			'languageGetVar' => 'L',
			'expireDays' => 7,
			'rootpage_id' => 223,
		),
		'fixedPostVars' => array(),
		'postVarSets' => array(
			'_DEFAULT' => array(
				'erweitert' => array( 
					array( 
						'GETvar' => 'tx_indexedsearch[ext]', 
					),
				),
				'browse' => array( 
					array( 
						'GETvar' => 'tx_ttnews[pointer]', 
						'valueMap' => array(
							'weiter' => '1',
							'weiter' => '2',
						),
					),
				),
				'kategorie' => array (
					array (
						'GETvar' => 'tx_ttnews[cat]',
						'lookUpTable' => array (
							'table' => 'tt_news_cat',
							'id_field' => 'uid',
							'alias_field' => 'title',
							'addWhereClause'=> 'AND NOT deleted',
							'useUniqueCache'=> 1,
							'useUniqueCache_conf' => array (
								'strtolower' => 1,
								'spaceCharacter' => '-',
							),
						),
					),
				),
                '-' => array(
                    array(
						'GETvar' => 'tx_ttnews[year]',
					),
                    array(
						'GETvar' => 'tx_ttnews[month]' , 
					),
                    array(
						'GETvar' => 'tx_ttnews[day]' , 
					),
                    array(
						'GETvar' => 'tx_ttnews[tt_news]',
						'lookUpTable' => array( 
							'table' => 'tt_news', 
							'id_field' => 'uid', 
							'alias_field' => 'title', 
							'addWhereClause' => ' AND NOT deleted', 
							'useUniqueCache' => 1, 
							'useUniqueCache_conf' => array( 
								'strtolower' => 1, 
								'spaceCharacter' => '-',  
							),
						),
					),
				),
				'aktion' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[action]',
						'valueMap' => array(
							'zeige-kategorie' => 'getviewcatalog',
							'neuer-link' => 'getviewaddnewlink', 
							'goto' => 'getviewclickedlink', 
							'link-detail' => 'getviewdetailsforlink', 
							'broken-link' => 'getviewreportbrokenlink',
							'rate-link' => 'getviewratelink',
						),
					),
				),
				'link-kategorie' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[category_uid]',
						'valueMap' => array(
							'home' => '0',
						),
						'lookUpTable' => array(
							'table' => 'tx_ablinklist_category',
							'id_field' => 'uid',
							'alias_field' => 'label',
							'addWhereClause' => ' AND NOT deleted',
							'useUniqueCache' => 1,
							'useUniqueCache_conf' => array(
								'strtolower' => 1,
								'spaceCharacter' => '-',
							),
						),
					),
				),
				'link' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[uid]',
						'lookUpTable' => array(
							'table' => 'tx_ablinklist_link',
							'id_field' => 'uid',
							'alias_field' => 'label',
							'addWhereClause' => ' AND NOT deleted',
							'useUniqueCache' => 1,
							'useUniqueCache_conf' => array(
								'strtolower' => 1,
								'spaceCharacter' => '-',
							),
						),
					),
				),
				'element' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[cid]',
					),
				),
				'seite' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[pointer]',
					),
				),
				'gb-seite' => array(
					array(
						'GETvar' => 'tx_veguestbook_pi1[pointer]',
					),
				),
				'details' => array(
					array('GETvar' => 'produkt',
						'lookUpTable' => array(
							'table' => $tt_products_table,
				                        'id_field' => $tt_products_uid,
							'alias_field' => 'concat(title)',
							'addWhereClause' => ' AND deleted != 1',
							'useUniqueCache' => 1,
							'autoUpdate' => 1,
							'useUniqueCache_conf' => array(
								'strtolower' => 1,
								'spaceCharacter' => '-',
							),
						),
					),
				),
			),
		),
		// configure filenames for different pagetypes
		'fileName' => array(
			'index' => array(
				'rss.xml' => array(
					'keyValues' => array(
						'type' => 100,
					),
				),
				'rss091.xml' => array(
					'keyValues' => array(
						'type' => 101,
					),
				),
				'rdf.xml' => array(
					'keyValues' => array(
						'type' => 102,
					),
				),
				'atom.xml' => array(
					'keyValues' => array(
						'type' => 103,
					),
				),
			),
		),
	),
);

?>