TYPO3 - Доступ к странице сведений о записи через параметр GET url

Я разработал расширение extbase со списком и подробным представлением (действие списка и показа). Без использования realurl ... ссылка на подробное представление выглядит так:

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

И когда я меняю идентификатор записи в URL-адресе, я могу динамически изменять содержимое на странице сведений и получать доступ к записи:

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 

Конечная цель - иметь такой URL-адрес и получать доступ к записи через параметр GET в URL-адресе:

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, но это не сработало.


person Philipp M    schedule 29.12.2017    source источник


Ответы (1)


Я сделал конфигурацию 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 - это содержимое сегмента. может быть ID, если вы хотите переключаться между изменением URL вручную
  • 99 - это идентификатор страницы с подробным представлением
person Heinz Schilling    schedule 29.12.2017
comment
У меня тоже есть такая установка, и она работает. Однако это работает только в том случае, если в tx_realurl_urldata уже есть определенный путь. Это означает, что для 1 миллиона записей и 2 языков ... в tx_realurl_urldata должно быть доступно 3 миллиона путей говорящих_url. Когда доступна запись в tx_realurl_urldata? - ›... если я выведу конкретную запись, например через действие списка. Но если запись не была запрошена ... она недоступна в tx_realurl_urldata, и ссылка не работает. Тем не менее, если я отключу realurl ... я могу легко изменить любой uid записи в URL-адресе, как описано выше, и получить информацию о записи ... - person Philipp M; 30.12.2017
comment
Я понимаю, что вы написали. Но как следует детализировать страницы, к которым осуществляется доступ, если записи не указаны? - person Heinz Schilling; 30.12.2017
comment
Я тоже в этом не уверен. В конце я хотел бы получить что-то вроде: wienerborse. в / marktdaten / aktien-sonstige / preisdaten / ... например как вы думаете, может ли usetypo3.com/json-view.html это сделать? - person Philipp M; 31.12.2017