2017-11-05 15 views
0

を使用するドメインでカスタムFAL変数を読んで、私はtx_news"Show in list view"に似て読まれる必要がある画像のメタデータにバイナリ変数を、導入しました。 tx_newsTYPO3拡張;流体テンプレートで私のカスタム拡張で

私は変数を追加することができた例として、新しいパレットは、バックエンドでチェックボックスが表示され、選択がsys_file_referenceテーブルに新しいデータベースフィールドに登録されている...

私は流体テンプレートでこの変数を使用する必要があります。ここで私はそのトレイルを失います。オブジェクトがitemsで、新しい変数がopentab命名されたドメインに以下のように、私は変数を宣言:

/** 
* items 
* 
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> 
* @lazy 
*/ 
protected $items = null; 

/** 
* items with opentab set 
* 
* @var array 
* @transient 
*/ 
protected $itemsOpen; 

これは私がopentabチェックしてアイテムを読み取ろうとする方法です。

/** 
* Get open items 
* 
* @return array 
*/ 
public function getItemsOpen() 
{ 
    $itemOpen = []; 
    foreach ($this->getItems() as $item) { 
     if ($item->getOriginalResource()->getProperty('opentab')) { 
      $itemOpen[] = $item; 
     } 
    } 
    return $itemOpen; 
} 
私の流体テンプレートで <f:debug>

私は、変数を参照していますitemsOpenが、アイテムのためのDBは、このフィールドに含まれているものは何でも何も値...

私のTCA:

'items' => [ 
     'exclude' => 1, 
     'label' => $ll . 'tx_trader_domain_model_object.floorplans', 
     'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
      'items', 
      [ 
       'appearance' => [ 
        'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference' 
       ], 
       // custom configuration for displaying fields in the overlay/reference table 
       // to use the itemsPalette and imageoverlayPalette instead of the basicoverlayPalette 
       'foreign_types' => [ 
        '0' => [ 
         'showitem' => ' 
          --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;itemsPalette, 
          --palette--;;imageoverlayPalette, 
          --palette--;;filePalette' 
        ], 
        \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ 
         'showitem' => ' 
          --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;itemsPalette, 
          --palette--;;imageoverlayPalette, 
          --palette--;;filePalette' 
        ], 
        \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ 
         'showitem' => ' 
          --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;itemsPalette, 
          --palette--;;imageoverlayPalette, 
          --palette--;;filePalette' 
        ] 
       ] 
      ], 
      'gif,jpg,jpeg,png,pdf' 
     ), 

    ], 
+0

あなたのTCAはあなたのモデルのどのように見えますか? – minifranske

+0

私の質問にTCA(関連部分)を追加しました... – webMan

答えて

1

流体は、魔法のgetterメソッドを呼び出しません。したがって、<f:debug>{object.itemsOpen}</f:debug>を試してください。

プロパティは、どこにも入力しないため空のままです。あなたのゲッターでは使用されません

+0

あなたは正しいです、そのデバッグは内容を表示します...私の流体テンプレートでこの変数を呼び出すのに十分ですか(私は試しましたが、予期せぬ出力を得ます)それをどこかに埋める? – webMan

+0

モデルにプロパティは必要ありません。 .......... 'のように、' getItemsOpen() 'を呼び出します。 – minifranske

+0

あなたの答えは正しいですが、 '$ itemsOpen'が' $ items'配列と干渉して '$ items'のループでそれを読んでいるので、私の問題は解決しませんでした。私は今別々に質問しています... – webMan

関連する問題