簡體   English   中英

TYPO3 RealUrl-將extbase詳細信息路徑縮短到第二級

[英]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_postProcdecodeSpURL_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM