2017-01-02 10 views
4

これは私のコードです。私は間違いがどこにあるのか分かりません。次のコードを参考にして助けてくださいTYPO3 FlexFormが表示されない

$pluginSignature = str_replace('_','',$_EXTKEY) . '_rock'; 

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin('Rocktechnolabs.' . $_EXTKEY, 'rock', 'THE FAQS'); 

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_rock.xml'); 

in Configuration/FlexForms/flexform_rock.xml 

<T3DataStructure> 
    <sheets> 
     <sDEF> 
      <ROOT> 
       <TCEforms> 
        <sheetTitle>Function</sheetTitle> 
       </TCEforms> 
       <type>array</type> 
       <el> 
        <switchableControllerActions> 
         <TCEforms> 
          <label>Select function</label> 
          <config> 
           <type>select</type> 
           <items> 
            <numIndex index="0"> 
             <numIndex index="0">List</numIndex> 
             <numIndex index="1">Faq->list</numIndex> 
            </numIndex> 
            <numIndex index="1"> 
             <numIndex index="0">Search</numIndex> 
             <numIndex index="1">Faq->search</numIndex> 
            </numIndex> 
           </items> 
          </config> 
         </TCEforms> 
        </switchableControllerActions> 
       </el> 
      </ROOT> 
     </sDEF> 
    </sheets> 
</T3DataStructure> 

私はたくさん試しましたが、選択プラグインでflexformを取得していません。間違いを見つけるのを助けてくれますか?

答えて

2

あなたはsubtypes_addlistにflexformフィールドを追加する必要があります。

$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; 
+0

ありがとうございます。私はこれを忘れてしまいました。私はちょうどそれを追加しました。ありがとうございます –

+0

エラーの場合は、結果として得られた$ TCAを確認するのに役立ちます。あなたは本当にTYPO3によって行われたことを確認することができます。あなたの拡張のtt_content.phpファイルの最後にこれらの行を追加してください。デバッグ($ GLOBALS ['TCA'] ['tt_content'] ['types']、 '$ GLOBALS [\' TCA \ '] [\' tt_content \ '] [\' types \ ']'); [$ item] ['items']、 '$ GLOBALS [\' TCA \ '] [\' tt_content] [デバッグ($ GLOBALS ['TCA'] ['tt_content' \ '] [\'列\ '] [\'リストタイプ\ '] [\' config \ '] [\' items \ ']'); ' –

2

あなた$pluginSignatureマッチがExtensionUtility::registerPlugin()$pluginSignatureの結果を確認してください。

これはその方法で何が起こっているかである:

$extensionName = str_replace(' ', '', ucwords(str_replace('_', ' ', $extensionName))); 
    $pluginSignature = strtolower($extensionName) . '_' . strtolower($pluginName); 

私には、これはルネが同様に重要である提案されているよう$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';の追加異なる:)

を探します。

+0

私は' $ extensionName = \ TYPO3 \ CMS \ Core \ Utility \ GeneralUtility :: underscoredToUpperCamelCase($ _ EXTKEY); 'に注意しました。しかし、$ pluginSignatureを構築しているときに、次の 'strtolower()'と関連して、拡張キーが通常のルール(大文字、スペースなし)で構築されている場合、同じ結果になります。 また、/ Configuration/TCA /にある場合、定数 '_EXTKEY'は利用できません。 –

+0

知識共有のmathiasに感謝します。私はtypo3で新しくなっていますので、多くの助けになります はい、私は欲しいですコメントの知識のためにバーンドにも感謝する:) –

関連する問題