[英]TYPO3 RealUrl - shorten extbase detail path to second level
我有一個自己的作業插件,帶有一個列表和一個顯示視圖(在同一頁面上)。 我在realurl_conf.php(按“ job-view”分組)的“ postVarSets”中輸入了參數,因此我的鏈接如下所示:
/職位 -列表視圖
/ jobs / job-view / show / Job / testjob-詳細視圖
現在,我可以使用“ encodeSpURL_postProc”縮短路徑:
$params['URL'] = str_replace('job-view/show/Job', 'job-detail', $params['URL']);
並通過解碼
$params['URL'] = str_replace('job-detail', 'job-view/show/Job', $params['URL']);
/職位 -列表視圖
/職位/職位詳情/測試職位 -詳細視圖
但是我希望我的詳細視圖看起來像:
/職位/測試職位
但是我不能用
$params['URL'] = str_replace('jobs/job-view/show/Job', 'jobs', $params['URL']);
因為解碼
$params['URL'] = str_replace('jobs', 'jobs/job-view/show/Job', $params['URL']);
也將嘗試解碼回列表視圖。
因此,是否可以將詳細信息頁面的URL路徑縮短到第二級?
結合使用fixedPostVars
和TS條件,這非常容易實現。
假設擴展的參數類似於tx_jobs_list
,那么在realurl配置中將具有以下內容:
'fixedPostVars' => [
$jobDetailPagePid => [
[
'GETvar' => 'tx_jobs_list[uid]',
'lookUpTable' => [
...
]
],
[
'GETvar' => 'tx_jobs_list[controller]',
'noMatch' => 'bypass'
],
[
'GETvar' => 'tx_jobs_list[action]',
'noMatch' => 'bypass'
],
],
],
$jobDetailPagePid
必須是頁面ID。 您不能在此處使用_DEFAULT
。
您還需要詳細信息頁面的TS條件:
[globalString = GP:tx_jobs_list|uid = /\d+\]
config.defaultGetVars {
tx_jobs_list {
controller = List
action = single
}
}
[global]
就這樣。
請仔細閱讀文檔: https : //github.com/dmitryd/typo3-realurl/wiki/Configuration-reference#fixedpostvars也許這可以為您提供幫助。
我無需更改解碼/編碼功能即可獲得所需的內容。
您可以在real_conf.php文件中使用encodeSpURL_postProc
和decodeSpURL_preProc
,如下所示。
'encodeSpURL_postProc' => array('user_encodeSpURL_postProc'),
'decodeSpURL_preProc' => array('user_decodeSpURL_preProc'),
function user_encodeSpURL_postProc(&$params, &$ref) {
$params['URL'] = str_replace('jobs', 'job-view/show/Job/', $params['URL']);
}
function user_decodeSpURL_preProc(&$params, &$ref) {
$params['URL'] = str_replace('job-view/show/Job/', 'jobs', $params['URL']);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.