Tôi có tiện ích mở rộng có danh sách và hiển thị hành động. Hiện nay phần mở rộng này có thể xuất hiện trên nhiều trang:RealURL: Xóa Bộ điều khiển và Hành động khỏi URL
/page-1/
/page-2/subpage/
Tôi đã cấu hình realurl
như thế:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']=array (
'encodeSpURL_postProc' => array('user_encodeSpURL_postProc'),
'decodeSpURL_preProc' => array('user_decodeSpURL_preProc'),
'_DEFAULT' => array (
…
'postVarSets' => array(
'_DEFAULT' => array(
'controller' => array(
array(
'GETvar' => 'tx_extension_plugin[controller]',
'noMatch' => 'bypass',
),
),
'extension' => array(
array(
'GETvar' => 'tx_extension_plugin[action]',
),
array(
'GETvar' => 'tx_extension_plugin[controller]',
),
array(
'GETvar' => 'tx_extension_plugin[value]',
'lookUpTable' => array(
'table' => 'table',
'id_field' => 'uid',
'alias_field' => 'name',
'addWhereClause' => ' AND NOT deleted AND NOT hidden',
…
);
function user_decodeSpURL_preProc(&$params, &$ref) {
$params['URL'] = str_replace('page-1/', 'page-1/extension/', $params['URL']);
}
function user_encodeSpURL_postProc(&$params, &$ref) {
$params['URL'] = str_replace('page-1/extension/', 'page-1/', $params['URL']);
}
Bây giờ tôi nhận được URL như:
/page-1/ /* shows list */
/page-1/Action/show/name-of-single-element /* single view */
Những gì tôi thực sự muốn điều này là:
/page-1/name-of-single-element /* single view */
Làm cách nào để loại bỏ hành động và bộ điều khiển?
Nếu tôi loại bỏ:
array('GETvar' => 'tx_extension_plugin[action]'),
array('GETvar' => 'tx_extension_plugin[controller]'),
nó gắn thêm các thông số vào URL.
Nó đòi hỏi cách tiếp cận khác, nó là phần mở rộng của bạn? bạn có thể thay đổi mã của nó không? chỉ cho tôi làm thế nào để bạn xây dựng các liên kết/url của bạn – biesior
@biesior Vâng, đó là phần mở rộng của riêng tôi và có, tôi có thể thay đổi mọi thứ. Các liên kết được xây dựng như sau: ' hiển thị bài viết f: link .action> ' –
lampshade