[英]Remove controller from url with typo3 and realurl
我正在構建更復雜的url,我希望它們很好並且沒有不必要的信息。
因此,我不想在我的URL中使用typo3控制器。 我通過使用<f:link.page>
而不是<f:link.action>
鏈接<f:link.action>
鏈接。
現在,我想對表單的唯一流體執行相同操作,從而自動將控制器廣告添加到鏈接。 我嘗試了以下表單代碼,但它也添加了當前控制器:
<f:form class="limitform" method="post" enctype="multipart/form-data" pageUid="1" additionalParams="{extension: {page: '1'}}">
有沒有辦法不添加控制器?
您可以在RealURL配置中刪除控制器和/或操作。 下面是一個示例,該示例從詳細信息鏈接中刪除了動作和控制器。
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
'init' => array (
'enableCHashCache' => '1',
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => '1',
'enableUrlEncodeCache' => '1',
),
'fixedPostVars' => array (
'yourDetailConfiguration' => array(
array(
'GETvar' => 'tx_yourext_pi[action]',
'valueMap' => array(
'detail' => '',
),
'noMatch' => 'bypass'
),
array(
'GETvar' => 'tx_yourext_pi[controller]',
'valueMap' => array(
'Event' => '',
),
'noMatch' => 'bypass'
),
array(
'GETvar' => 'tx_yourext_pi[event]',
'lookUpTable' => array(
'table' => 'tx_yourext_domain_model_yourtable',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-'
),
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'autoUpdate' => 1,
'expireDays' => 180,
)
)
),
'123' => 'yourDetailConfiguration',
),
);
請注意,您必須將帶有插件的每個頁面UID (在本例中為頁面123,其中包含詳細信息頁面)分配給所需的配置。
有關更多信息,請參見新聞擴展的擴展手冊 。 在那里,您還將找到上述解決方案的替代方案,以刪除控制器/動作。
最好的方法是使用“ fixedPostVars”(參見其他答案)構建口語網址,然后使用來自realurl的編碼鈎子清理長網址:
// Replace
$TYPO3_CONF_VARS['EXTCONF']['realurl']['encodeSpURL_postProc'] = array('user_encodeSpURL_postProc');
$TYPO3_CONF_VARS['EXTCONF']['realurl']['decodeSpURL_preProc'] = array('user_decodeSpURL_preProc'); //
function user_encodeSpURL_postProc(&$params, &$ref) {
$params['URL'] = str_replace('auto/contoller/Ads/', 'auto/Ads', $params['URL']);
}
function user_decodeSpURL_preProc(&$params, &$ref) {
$params['URL'] = str_replace('auto/Ads', 'auto/contoller/Ads/', $params['URL']);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.