在网址生成中跳过控制器和操作

时间:2015-12-15 12:52:30

标签: url action typo3 realurl typo3-7.x

TYPO3版本是7.6.0。

生成链接:

<f:link.action action="single" class="title" pageUid="{settings.pidDetails}" additionalParams="{unid: '{unid}'}" noCacheHash="true">Link text</f:link.action>

结果:

http://example.com/property/flats/?unid=12345&tx_ext_extp1%5Baction%5D=single&tx_ext_extyp1%5Bcontroller%5D=Ext

需要: 在网址生成中跳过控制器和操作 - http://example.com/property/flats/?unid=12345

2 个答案:

答案 0 :(得分:0)

您可以使用realurl扩展名来清除网址。 安装完成后,编辑位于typo3conf文件夹中的realurl_autoconf.php文件。

function user_encodeSpURL_postProc(&$params, &$ref) {
    $params['URL'] = str_replace('blog/post/article/', 'blog/post/', $params['URL']);
}
function user_decodeSpURL_preProc(&$params, &$ref) {
    $params['URL'] = str_replace('blog/post/', 'blog/post/article/', $params['URL']);
}
$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
    '_DEFAULT' => array (
        'init' => array (
            'enableCHashCache' => '1',
            'appendMissingSlash' => 'ifNotFile',
            'enableUrlDecodeCache' => '1',
            'enableUrlEncodeCache' => '1'
        ),
        'redirects' => array (
        ),
        'preVars' => array (
            '0' => array (
                'GETvar' => 'no_cache',
                'valueMap' => array (
                    'nc' => '0'
                ),
                'noMatch' => 'bypass',
            ),
            '1' => array (
                'GETvar' => 'L',
                'valueMap' => array (
                    'de' => '0',
                    'en' => '1'
                ),
                'noMatch' => 'bypass'
            ),
            '2' => array (
                'GETvar' => 'cHash',
                'noMatch' => 'bypass',
            ),
        ),
        'pagePath' => array (
            'type' => 'user',
            'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
            'spaceCharacter' => '-',
            'languageGetVar' => 'L',
            'rootpage_id' => '1' // your root UID
        ),
        'fixedPostVars' => array(

        ),
        'postVarSets' => array(
            '_DEFAULT' => array(
                'controller' => array(
                    array(
                        'GETvar' => 'tx_news_pi1[action]',
                        'noMatch' => 'bypass'
                    ),
                    array(
                        'GETvar' => 'tx_news_pi1[controller]',
                        'noMatch' => 'bypass'
                    )
                ),
                'authentication' => array(
                        array(
                                'GETvar' => 'tx_eventmanagementtool_ext1[action]',
                        ),
                ),
                'dateFilter' => array(
                    array(
                        'GETvar' => 'tx_news_pi1[overwriteDemand][year]',
                    ),
                    array(
                        'GETvar' => 'tx_news_pi1[overwriteDemand][month]',
                    ),
                ),
                'page' => array(
                    array(
                        'GETvar' => 'tx_news_pi1[@widget_0][currentPage]',
                    ),
                ),

            ),
        ),
        'fileName' => array (
            //'defaultToHTMLsuffixOnPrev' => '.html',
            'acceptHTMLsuffix' => 1,
            'index' => array (
                'rss.xml' => array (
                    'keyValues' => array (
                        'type' => '100'
                    ),
                ),
                'rss091.xml' => array (
                    'keyValues' => array (
                        'type' => '101'
                    ),
                ),
                'rdf.xml' => array (
                    'keyValues' => array (
                        'type' => '102'
                    ),
                ),
                'atom.xml' => array (
                    'keyValues' => array (
                        'type' => '103'
                    ),
                ),
                'sitemap.xml' => array (
                    'keyValues' => array (
                        'type' => '776'
                    ),
                ),              
            ),
        ),
    )
);

您可以使用旁路方法从网址中删除控制器和操作,如:

'controller' => array(
    array(
        'GETvar' => 'tx_news_pi1[action]',
        'noMatch' => 'bypass'
    ),
    array(
        'GETvar' => 'tx_news_pi1[controller]',
        'noMatch' => 'bypass'
    )
)

答案 1 :(得分:0)

转到您的Extension文件夹。

在配置中 - &gt; TypoScript - &gt; setup.txt写下代码:

plugin.tx_[your_extensionname].features.skipDefaultArguments = 1

警告:仅当您在flexform中不使用switchableControllerActions时才有效。