2017-08-04 1 views
0

私はフロントエンド・ユーザーが自分のプロファイルを編集できる拡張やプラグインを構築しましたが、私は重要な問題に気づきましたでもログインしていなかった別のユーザーに関するどうやらフォームが原因で追加した後、サーバーにキャッシュされた:。TYPO3:特定のプラグインの無効化キャッシュ/拡張

config.no_cache = 1 

それが再び起こりませんでした。今問題は、ウェブサイト全体でインデックス作成が無効になっていることです。

この特定の拡張機能/プラグインに対してのみキャッシュを無効にする方法はありますか?

答えて

3

あなたのext_localconf.phpにこのような何かを持っている必要があります。ここでは

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
     $_EXTKEY, 
     'List', 
     array('User' => 'list,editProfil'), 
     array('User' => 'editProfil') // Uncached actions 
); 

それが説明されているところである。https://docs.typo3.org/typo3cms/ExtbaseFluidBook/4-FirstExtension/7-configuring-the-plugin.html

+0

最初の配列は「キャッシュされたアクション」ではなく「切り替え可能なコントローラーアクション」です。 ***あなたの行動の***すべてがそこにリストアップされていなければなりません。さらに、キャッシュされていないアクションは2番目の配列に追加されます。 – Nitori

+0

修正、彼らは "切替え可能なコントローラアクション"ではありません - この用語は、Extbaseで別の、別の意味を持っています。それらは「コントローラごとに許可されたすべてのアクション」です。切り替え可能なコントローラーアクションという用語は、flexformまたはTypoScriptの設定*に基づいてプラグインのデフォルトアクションと許可されたアクションリストを変更できる*内部論理に適用され、configurePluginメソッドで定義した許可されたアクションリストの上に適用されますこの配列でも許可されていない場合は、切り替え可能なコントローラアクションでアクションを有効にすることはできません)。 –

1

だけにこれをしたい場合は、特定のページに適用したり、インテグレータにより制御可能で、あなたはオブジェクトのTSレンダリング命令をオーバーライドできます。

tt_content.list.20.YOURLISTTYPEHERE = USER_INT 

カスタムCTypeとして登録した場合:

tt_content.YOURCTYPEHERE.20 = USER_INT 

上記はfluid_styled_contentとcss_styled_contentで有効です。

config.no_cache = 1を使用することは、決してキャッシング以外の多くの機能を無効にするので、決して使用することはお勧めできません。また、ページ全体のキャッシングはすべて無効になります。パフォーマンスにとっては、特定のプラグインをキャッシュできないようにする方が良いでしょう。可能であれば、キャッシュされないビューをレンダリングするためにプラグインが使用されるページでのみ行います。

ビューの一部をキャッシュする必要がある場合は注意してください。セキュリティの面では銀色の弾丸ではありませんが、ユーザーのID(および認証の他のものも含む)を常にすべてのキャッシュIDに含めることは良いスタートです。また、ユーザーの名前のようなものを出力するコードを含め、いつでもキャッシュに機密情報を保存しないようにしてください。

関連する問題