Плагин TYPO3 - одно действие публичного доступа и одно приватное

Я разрабатываю расширение, которое имеет как список записей (действие show), так и форму для отправки новой записи (действие new).

Список должен быть для общего доступа, но форма должна требовать форму входа в систему (я использую тип содержимого формы входа, который поставляется с TYPO3).

Я пробовал использовать вкладку доступа для плагина, выбрав Показывать при любом входе, но это применимо ко всему плагину, а не для каждого действия.

В настоящее время страница выглядит так:

введите здесь описание изображения

Как я могу отобразить форму входа только тогда, когда кто-то пытается создать новую запись?

Примечание: расширение основано на Extbase и Fluid. Целевая версия - TYPO3 6.2.


person Memochipan    schedule 25.07.2016    source источник


Ответы (1)


Самый простой - разделить действия в разных «представлениях» с помощью switchableControllerActions в вашей гибкой форме. Затем вам нужно будет разместить отдельные плагины на двух разных страницах, чтобы у вас была разная конфигурация доступа для плагинов. Если вы не знаете, как настроить гибкую форму, вы можете опубликовать ее содержимое здесь.

Другой способ - сделать проверку внутри контроллера, но я бы использовал его только в том случае, если у вас есть много разных ролей, которые вам нужно проверить.

    if ($this->loginUser === null && $GLOBALS['TSFE']->loginUser && !empty($GLOBALS['TSFE']->fe_user->user['uid'])) {
        // the user is logged in
    } else {
        // return '' as action content
        return '';
    }
person Dimitri L.    schedule 26.07.2016
comment
Я не уверен, что действие new недоступно в общедоступном плагине, если вы делаете это таким образом - вам, вероятно, просто нужно будет манипулировать URL-адресом общедоступной страницы и добавить к нему параметр tx_<extname>_<pluginname>[action]=new. - person Jost; 26.07.2016
comment
Суть настройки switchableControllerActions в том, что могут быть вызваны только настроенные действия, все остальные действия не существуют для плагина. Затем вы можете выбрать желаемый вид в конфигурации плагина. - person Dimitri L.; 26.07.2016
comment
Кажется, вы правы, мне показалось, что это всего лишь дисплей, и была принята во внимание только конфигурация из configurePlugin. Я исправился. - person Jost; 26.07.2016