我有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
答案 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
。
您可以返回Parent-Category-Sub-Category
。这也将存储在缓存中。
此外,您的UserFunc可能返回Parent-Category ~~~ Sub-Category,并且您将~~~用/
钩中的$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['encodeSpURL_postProc']
替换,但是~~~将是存储在缓存中。
您还可以添加另一个参数,例如parent_category
,但是此可选参数在fixesPostVars
部分中不起作用,因为在这里该参数是必需的,因此如果为空,则可以URL中的双斜杠//类别。
除了使用parent-category-sub-category格式以外,您还能找到其他解决方案吗?