2016-09-13 7 views
0

バックエンドユーザー向けのニュースを提供する小さなエクステンションを作成しました。 Istは2パーツです。 TCAが提供する作成機能と編集機能は、すべてのBEユーザーのニュースを独自のモジュールとして表示する部分です。TYPO3 Extbase:バックエンドモジュール用のstoragepidを設定してください

TCAフォームとデフォルトのextbaseゲッターを使用するには、正しいstoragePidが必要です。 私はページコンテキストに決していないので、私はTypoScriptでそれらを設定できません。

私の考えでは、ファイルext_conf_template.txt

# cat=persistence/enable; type=int; label=Storage pid 
storagePid = 4457 

settings

とプラグインの設定を使用していた。しかし、どのように私は、この設定を見てTYPO3を伝えることができますか?

少なくともRepository->findAll()は、それが

答えて

0

おそらく最良の解決策ではないかもしれませんが、うまくいきます。

pidをパラメータとしてリポジトリに自分の関数を書きました。 私はTYPO3 Query Builderを使用しています。
$query->equals('pid', $pid);で私は自分のpidでエントリを取得します。
$query->getQuerySettings()->setRespectStoragePage(false);で、デフォルトのpidは無視されます。

最後のステップとして。私のコントローラは設定から​​pidを取得し、unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['my_extension']['storagePid']);はそれを関数に渡します。

2

通常は、この使用のTypoScript定義し尊重しなければならない:

module.tx_yourextensionkey.persistence.storagePid = 123 

ページコンテキストにされていないことは、あなたが最初のルートの設定を置く限りブロッカーではありませんTypoScriptテンプレート(または、sys_templateレコードまたはページツリーの場所に固有のものではないグローバルなインクルードを引き起こす他の手段を介してTypoScriptを含める)。

+0

しかし、ルートページにはTypoScriptを使用できません。 – kevinq

+0

ルートページ(uidゼロ)は真ではありませんが、extbaseはそこには見えません。 'is_root = 1'を持つ最も古い' sys_template'レコードを探します。したがって、どのページに関係なく最も古いルートテンプレートを見つけるでしょう存在する。これを知ることは、静的テンプレートとして提供されているTypoScriptを使用するExtbaseモジュールを正しく動作させるためには非常に重要です(上の基準に一致するルートテンプレートにこれらを含める必要があります)。 –

+0

まだ動作しません。 TCA rootLevel = 1に設定し、pid = 0でレコードを安全にしていれば動作しています。しかし、TypoScriptの設定ではありません。 – kevinq

関連する問題