我有一个realurl2配置,要求我用所选语言更改给定类别的标题。踢球者只有一个带有类别标题的数据库记录,翻译是通过.xlf文件进行的。
我设法现在替换了标题,但是映射显然不起作用。在realurl Classes中是否有一个方法可以轻松添加数据库记录,或者我自己在$ _GET Paramaeters中解码它?
'fixedPostVars' => array(
// TODO: Implement dynamic via typoscript if possible!
'3' => array(
array(
'GETvar' => 'tx_products_products[product_categories]',
'userFunc' => function(&$params, $ref) use ($recordTranslator){
$categoryId = $params['value'];
$translation = $recordTranslator->render('Category', 'title', $categoryId, 'products');
$realUrlConf = new \DmitryDulepov\Realurl\Configuration\ConfigurationReader(0, $params);
$realUrlUtil = new \DmitryDulepov\Realurl\Utility($realUrlConf);
$translation = $realUrlUtil->convertToSafeString($translation);
return $translation;
}
),
这是我到目前为止编码的内容。这里的recordTranslator只返回我想在url中使用的String。
答案 0 :(得分:0)
我最后用别名,字段,uid,语言等填充了我的“tx_realurl_uniqalias”表。
Translated Alias仍然是通过
创建的 $realUrlConf = new \DmitryDulepov\Realurl\Configuration\ConfigurationReader(0, $params);
$realUrlUtil = new \DmitryDulepov\Realurl\Utility($realUrlConf);
$translation = $realUrlUtil->convertToSafeString($translation);
在此之前,我将我的Iso语言标签映射到口语。为此,我在我的设置中创建了一个typoscript对象。
de {
ch-de = 1
de-de = 3
at-de = 5
}
en {
de-en = 4
}
fr {
ch-fr = 2
}
no {
no = 6
}
并保存了realurl_conf提供的语言字段以过滤翻译。像这样:
'GETvar' => 'L',
'valueMap' => array(
'ch-de' => '1',
'ch-fr' => '2',
'de-de' => '3',
'de-en' => '4',
'at-de' => '5',
'no' => '6',
),
'noMatch' => 'bypass',
每当创建一个新的“数据库记录”并使用刷新的数据重建它时,我仍然必须在后端清除我的SpokenUrl别名。但它可以工作。
查找是通常的可查找格式:
array(
'GETvar' => 'tx_products_products[product_categories]',
'lookUpTable' => array(
'table' => 'tx_products_domain_model_category',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),