Я настроил RealURL для генерации URL-адресов, но после смены языка он генерирует смешанные языковые URL-адреса. После очистки кеша и без смены языка URL-адреса остаются на активном языке, без проблем. Но после смены языка URL-адрес стал смешанным. Языковая предустановка и название страницы остаются правильными, но описание представляет собой смесь двух языков. Например, приведенные ниже URL-адреса ссылок генерируются на той же странице:
/de/anzeige/kategorie/1/vorrat/all.html (this is correct)
/de/anzeige/categorie/1/voorraad/all.html (mix between german & dutch)
Похоже на проблему с кэшем? Я исправил это сейчас, создав все комбинации между языками в файле конфигурации realurl, но это делает файл сложным.
В конфигурационном файле realurl я вначале использую следующий код для выбора языков:
$lang = substr($_SERVER['REQUEST_URI'], 1, 2);
if($lang=='de') {
$cat = 'kategorie';
$alias = 'COALESCE(name_de, name_en, name_nl)';
}
else {
$cat = 'categorie';
$alias = 'COALESCE(name_nl, name_en, name_de)';
}
Эта часть используется в postVarSets для получения имени категории из базы данных. Может быть проблема в том, как я могу получить название категории из базы данных?
$cat => array(
array (
'GETvar' => 'extension[catname]',
'lookUpTable' => array (
'table' => 'database_table',
'id_field' => 'uid',
'alias_field' => 'uid',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => '1',
'useUniqueCache_conf' => array (
'strtolower' => '1',
'spaceCharacter' => '-',
),
),
),
array (
'GETvar' => 'extension[catname]',
'lookUpTable' => array (
'table' => 'database_table',
'id_field' => 'uid',
'alias_field' => $alias,
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => '1',
'useUniqueCache_conf' => array (
'strtolower' => '1',
'spaceCharacter' => '-',
),
),
),
),
),