TYPO3 - 通过url GET参数访问记录的详细信息页面

时间:2017-12-29 19:40:46

标签: typo3 realurl typo3-8.x typo3-extensions

我使用列表和详细信息视图(列表和显示操作)开发了一个extbase扩展。不使用realurl ...详细视图的链接如下所示:

domain/index.php?id=43&/?tx_abc_abc[record]=1&tx_abc_abc[action]=show&tx_abc_abc[controller]=Abc 

当我更改网址中的记录ID时,我可以动态更改详细信息页面上的内容并访问记录:

domain/index.php?id=43&/?tx_abc_abc[record]=2&tx_abc_abc[action]=show&tx_abc_abc[controller]=Abc 
domain/index.php?id=43&/?tx_abc_abc[record]=3&tx_abc_abc[action]=show&tx_abc_abc[controller]=Abc 
domain/index.php?id=43&/?tx_abc_abc[record]=4&tx_abc_abc[action]=show&tx_abc_abc[controller]=Abc 

最终目标是让网址看起来像这样,并通过网址中的GET参数访问记录:

domain/abc/?abc=1
domain/abc/?abc=2
domain/abc/?abc=3
domain/abc/?abc=4

但是当激活realurl时...如果它在tx_realurl_urldata中不可用,我无法直接访问该记录。或者realurl设置应该如何?

对此最佳解决方案是什么?我有太多的记录(加上2种语言)可以写入链接,并且始终可以在tx_realurl_urldata中使用。

所以我的想法是为这个特定的扩展停用realurl?但是如何?

或者我想在realurl_conf.php中排除详细信息页面:' excludePageIds' => 42,43但是没有用。

1 个答案:

答案 0 :(得分:0)

我为我自己的详细信息页面做了一个realurl配置,如下所示:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = [
    'www.domain.ch' => [
        ...
        ],
        'fixedPostVars' => [
            'extYourextensionDetailConfiguration' => [
                [
                    'GETvar' => 'tx_yourextension_abc[action]',
                    'noMatch' => 'bypass',
                ],
                [
                    'GETvar' => 'tx_yourtextension_abc[abc]',
                    'lookUpTable' => [
                        'table' => 'tx_yourextension_domain_model_abc',
                        'id_field' => 'uid',
                        'alias_field' => 'title',
                        'addWhereClause' => ' AND deleted=0 AND hidden=0',
                        'useUniqueCache' => true,
                        'useUniqueCache_conf' => [
                            'strtolower' => true,
                            'spaceCharacter' => '-',
                        ],
                        'enable404forInvalidAlias' => true,
                    ],
                ],
            ],
            ...,
            '99' => 'extYourextensionDetailConfiguration',
            ...,
        ],
        ...,
    ],
];

其中

  • www.domain.ch是您的域名
  • extYourextensionDetailConfiguration是稍后使用的名称
  • alias_field是细分的内容。如果您想在更改手工制作的URL
  • 之间切换,可以是ID
  • 99是具有详细信息视图的页面的ID