2016-07-25 67 views
0

我正在開發同時具有一個擴展,記錄列表(動作show)和表格發送一個新的記錄(動作new)。TYPO3插件 - 一個動作公共接入和一個私人

該列表必須爲公共訪問權限,但表單必須要求登錄表單(我使用TYPO3附帶的登錄表單內容類型)。

我已經嘗試使用該插件的訪問選項卡選擇顯示在任何登錄但它適用於整個插件而不是每個動作。

目前,這是頁面的樣子:

enter image description here

我怎樣才能到顯示登錄表單,只有當有人試圖創造一個新的記錄?

注意:擴展名基於Extbase和Fluid。目標版本是TYPO3 6.2。

回答

2

最簡單的辦法是在flexform中將不同「視圖」中的動作與switchableControllerActions分開。然後,您需要在兩個不同的頁面上放置單獨的插件,這樣您可以爲插件提供不同的訪問配置。如果你不知道如何調整flexform,你可以在這裏發佈它的內容。

另一種方法是在控制器內部進行檢查,但如果您需要檢查許多不同的角色,我只會使用它。

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 ''; 
    } 
+0

我不知道,如果'new'行動是在公開訪問插件無法進入,如果做這種方式 - 你可能只需要manipuate公共頁面的URL,並添加參數'TX_ _ [action] = new'。 – Jost

+0

配置'switchableControllerActions'的要點是隻有配置好的動作可以被調用,其他所有動作對於插件來說都是不存在的。然後,您可以在插件配置中選擇所需的「視圖」 –

+0

看起來你是對的,對我來說,它看起來只是一個顯示器,並且只考慮configurePlugin中的配置。我立場糾正。 – Jost