Zum Inhalt springen

realurl-Pfad bei Mehrsprachigkeit

Erstellt am 3. Mai 2017 · 2 Antworten · letzte Antwort am 8. Mai 2017

Tags: RealURL, tx_news, TYPO3 8, Frage

RaBe79 ·

Moin!

Ich nutze Typo3 8.7.1 LTS, realurl 2.2.0 und news 6.0.0 - also alles auf dem aktuellsten Stand.

In Zusammenhang mit mehrsprachigen News habe ich das Problem, dass in der URL immer der Titel der Default-Sprache einfließt:

https://www.example.de/blog/de/artikel/deutscher-titel/
https://www.example.de/blog/en/article/deutscher-titel/

Beide Links funktionieren, und zeigen auch die der Sprache entsprechenden Übersetzungen korrekt an.

Aber selbst wenn ich in der englischen Übersetzung der News das Feld "Speaking URL path segment" ausfülle, wird das ignoriert.

Muss ich die Ursache eher bei "news" oder bei "realurl" suchen?

Hier die relevanten Teile der Konfiguration:

config {
   simulateStaticDocuments = 0
   tx_realurl_enable = 1
   sys_language_overlay = hideNonTranslated
   sys_language_mode = strict; 0
   linkVars = L(0-10)
   sys_language_uid = 0
   language = de
   locale_all = de_DE.utf-8
   htmlTag_langKey = de
}
### english ###
[globalVar = GP:L = 3]
  config.sys_language_uid = 3
  config.language = en
  config.locale_all = en_US.utf-8
  config.htmlTag_langKey = en
[global]

preVars:

array(
    'GETvar' => 'L',
    'valueMap' => array(
            'de' => '0',
            'en' => '3',
    ),
    'noMatch' => 'bypass',
),

fixedPostVars/newsDetailConfiguration:

array(
    'GETvar' => 'tx_news_pi1[news]',
    'lookUpTable' => array(
        'table' => 'tx_news_domain_model_news',
        'id_field' => 'uid',
        'alias_field' => 'title',
        'addWhereClause' => ' AND NOT deleted',
        'useUniqueCache' => 1,
        'useUniqueCache_conf' => array(
                'strtolower' => 1,
                'spaceCharacter' => '-'
        ),
        'languageGetVar' => 'L',
        'languageExceptionUids' => '',
        'languageField' => 'sys_language_uid',
        'transOrigPointerField' => 'l10n_parent',
        'autoUpdate' => 1,
    )
)

Habe ich irgendwo einen Denkfehler oder etwas übersehen? Merci 🙂

jenses ·

Aus der Doku der EXT:news:

array(
		'GETvar' => 'tx_news_pi1[news]',
		'lookUpTable' => array(
			'table' => 'tx_news_domain_model_news',
			'id_field' => 'uid',

			'alias_field' => "CONCAT(uid, '-', IF(path_segment!='',path_segment,title))",
			/** OR ***************/
			'alias_field' => 'IF(path_segment!="",path_segment,title)',
			/** OR ***************/
			'alias_field' => "CONCAT(uid, '-', title))",

			'addWhereClause' => ' AND NOT deleted',
			'useUniqueCache' => 1,
			'useUniqueCache_conf' => array(
				'strtolower' => 1,
				'spaceCharacter' => '-'
			),
			'languageGetVar' => 'L',
			'languageExceptionUids' => '',
			'languageField' => 'sys_language_uid',
			'transOrigPointerField' => 'l10n_parent',
			'autoUpdate' => 1,
			'expireDays' => 180,
		)
	)

siehe typo3conf/ext/news/Documentation/AdministratorManual/BestPractice/Realurl/Index.rst

RaBe79 ·

Klasse, vielen Dank!

Ich bin damit zu dieser Lösung gekommen (auch wenn mir nicht klar ist, wieso das zweite der o.g. drei Beispiele NICHT funktioniert, obwohl es quasi dasselbe tut):

'alias_field' => 'coalesce(NULLIF(path_segment, ""), title)',

Notiz an mich selbst: RTFM 🙂