2017-06-13 66 views
0

嗨我有一個擴展在TYPO3 7.6。我有兩個動作列表和顯示。在我的flexform中有一個可切換的控制器action.list操作正在工作。但顯示操作不起作用。請檢查我的代碼。可切換控制器行動不工作TYPO3 7.6

柔性成型

    <switchableControllerActions> 
         <TCEforms> 
          <label>Display Type</label> 
          <onChange>reload</onChange> 
          <config> 
           <type>select</type> 
           <items type="array"> 
            <numIndex index="1" type="array"> 
             <numIndex index="0">List</numIndex> 
             <numIndex index="1">News->list</numIndex> 
            </numIndex> 
            <numIndex index="2" type="array"> 
             <numIndex index="0">Detail</numIndex> 
             <numIndex index="1">News->show</numIndex> 
            </numIndex> 
           </items> 
           <minitems>0</minitems> 
           <maxitems>1</maxitems> 
           <size>1</size> 
          </config> 
         </TCEforms> 
        </switchableControllerActions> 

列表視圖

<f:if condition="{news}"> 
    <ul> 
     <f:for each="{news}" as="item"> 
      <li> 
       <f:link.action action="show" controller="News" arguments="{news:'{item}'}" noCacheHash="false" pageUid="{settings.detailPid}" > 
        {item.title} 
       </f:link.action> 
      </li> 
     </f:for> 
    </ul> 
</f:if> 

我選擇的列表從詳細信息頁面在列表頁配置和選擇的細節。列表工作正常,但細節不起作用。

+1

確保您在給定的「{settings.detailPid}」頁面上添加了詳細信息插件。 –

+0

是的,我給了正確的詳細pid.Url創建是正確的,但頁面是空的 –

+1

只是試圖調試'{新聞}',並檢查你是否在新聞參數中傳遞有效的參數值。如果沒有運行,只需添加像這樣的'arguments =「{news:item}」' –

回答

1

嘗試添加的參數是這樣的:

arguments="{news: item.uid}" 

中的showAction你可以得到的說法是這樣的:

$newsId = $this->request->getArgument('news'); 
$news = $this->newsRepository->findByUid($newsId); 
$this->view->assign('news', $news); 

,你需要它會很好地工作。

+0

將參數更改爲參數=「{news:item.uid}」 但是沒有進入showAction –

1

不gtting message.only一個空白頁顯示任何錯誤

您可能要更改,首先

  1. 檢查你的error_reporting PHP的水平(的display_errors)
  2. 集您的開發環境(您可以在安裝工具中選擇預設)
  3. 查看安裝工具中的調試選項(所有配置定量)

請記住,您不想在生產環境中進行這些調整。

然後,你應該能夠看到錯誤。

我選擇的列表從配置列表頁面,選擇細節從 詳細信息頁面。列表工作正常,但細節不起作用。

您是否將show動作添加到插件配置中?外觀,在你的擴展ext_localconf.php

尋找此電話: ExtensionUtility :: configurePlugin

你的控制器 - >動作組合在您通過第一個數組參數存在。這可能是這樣的:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Vendor.ext_key', 
    'News', 
    array(
     'News' => 'list,show' 
    ) 
); 

如果傳遞4個參數與控制器 - >動作組合(像其他的),你可以定義操作,不應該被緩存。您可以使用這些來配置表單操作或可篩選的結果列表。

注意:總是使用ext_localconf中的完整名稱空間。PHP和其他引導文件,如果您使用「使用」語句,您可能會有另一個致命錯誤,typo3連接所有這些引導文件。

此外 - 你可能誤解了switchableControllerActions模式。如果你想要一個插件(行政長官),以顯示這兩個操作,該選項必須是

<switchableControllerActions> 
    <TCEforms> 
     ... 
     <config> 
      <type>select</type> 
      <items type="array"> 
       ... 
       <numIndex index="3" type="array"> 
        <numIndex index="0">List with Details</numIndex> 
        <numIndex index="1">News->list;News->show</numIndex> 
       </numIndex> 
      </items> 
      ... 
     </config> 
    </TCEforms> 
</switchableControllerActions> 

選擇的選項將被保存在XML數據結構,並作爲配置,因此,如果只有一個動作是可以這個實例,那麼你將收到一個錯誤。

如果使用不同的內容元素來顯示列表和詳細視圖,則必須在兩個內容元素中選擇正確的switchableControllerAction選項。

+0

我配置我的網站已經按照您的意願,而ext_localconf.php也是相同的。我修改了flexform,如您指定的beow。但沒有改變。 –

+0

但是你現在收到一個錯誤嗎?錯誤消息會非常有幫助。 –

+0

沒有收到任何錯誤 –