TYPO3 Realurl配置类别页面

时间:2017-04-03 13:25:16

标签: typo3 categories realurl

我有TYPO3 7.6.10。 我有tx_news。

我想按类别配置新闻页面。 现在我有:

'newsCategoryConfiguration' => array(
    array(
        'GETvar' => 'tx_news_pi1[overwriteDemand][categories]',
        'lookUpTable' => array(
            'table' => 'sys_category',
            'id_field' => 'uid',
            'alias_field' => 'title',
            'addWhereClause' => ' AND NOT deleted',
            'useUniqueCache' => 1,
            'useUniqueCache_conf' => array(
                'strtolower' => 1,
                'spaceCharacter' => '-'
            )
        )
    )
),

它有效,结果是:

/domain/page-With-List-Of-News-By-Category/Category

如果有子类别,结果是:

/domain/-page-With-List-Of-News-By-Category/Category

我可以得到:

/domain/page-With-List-Of-News-By-Category/Parent-Category/Sub-Category

2 个答案:

答案 0 :(得分:0)

也许有更快或更好的方式。但是如果你找不到,试试这个并用这种方式自己构建它:

'useUniqueCache_conf' => [
    'strtolower' => 1,
    'spaceCharacter' => '-',
    'encodeTitle_userProc' => 'My\Ext\Hooks\News\RealUrlCategories->buildCategoryPath'
];

和类似的东西:

class RealUrlCategories {
    function buildCategoryPath($parameters) {

        $categoriesPath = '';

        // find category rootline
        // you can find the uid somewhere in $parameters, then iterate for parent categories and read db for the titles to build final string

        ...

        // return generated string like "Parent-Category/Sub-Category"
        return $categoriesPath;
    }
}

答案 1 :(得分:-1)

问题是,realURL使用rawurlencode解析userFunc的结果。因此Parent-Category/Sub-Category将转换为Parent-Category%252FSub-Category

  1. 您可以返回Parent-Category-Sub-Category。这也将存储在缓存中。

  2. 此外,您的UserFunc可能返回Parent-Category ~~~ Sub-Category,并且您将~~~用/钩中的$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['encodeSpURL_postProc']替换,但是~~~将是存储在缓存中。

  3. 您还可以添加另一个参数,例如parent_category,但是此可选参数在fixesPostVars部分中不起作用,因为在这里该参数是必需的,因此如果为空,则可以URL中的双斜杠//类别。

除了使用parent-category-sub-category格式以外,您还能找到其他解决方案吗?