使用自定义userFunc更改fixedPostVars参数

时间:2016-06-01 14:52:39

标签: realurl typo3-7.6.x

我有一个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。

1 个答案:

答案 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' => '-',
                ),
            ),
        ),