2017-11-17 5 views
0

TYPO3にキャッシュされていないfe_userデータを表示するにはどうすればよいですか? Prevent to Cache Login Informationに従って。 ユーザーがログインしている場合、ViewHelperは$ GLOBALS ['TSFE'] - > no_cache = 1を設定します。ページ全体がキャッシュされるべきではなく、その一部だけがキャッシュされるべきではないからです。TYPO3とキャッシングのユーザー固有のコンテンツ

答えて

1

残念ながら、これは不可能です。

最も良い方法は、キャッシュされていないfe_userデータをeIDまたはTypeNumというAJAXでレンダリングし、ページ全体が完全にキャッシュされていることです。 このようなもの: http://www.typo3-tutorials.org/cms/typo3-und-ajax-wie-geht-das.html

0

完全なページのサンプルコード無効キャッシュ。ユーザー固有のデータを表示する場所でキャッシュを無効にする必要があります。あなただけ

  • つのコンテンツ要素をキャッシュするかどうかを選択するよuneedをキャッシュからどの部分を除く外のとおり(特にプラグインのために、これは標準的な動作です:ちょうどあなたのext_localconf.phpにキャッシュ不可能としてプラグインを宣言する)(
  • 1列1
  • )あなたのTypoScriptで COA_INT(または他のキャッシュされていないオブジェクト)を使用してくださいなViewHelper(あなたなViewHelperはキャッシュ不能にする[1]またはEXTから v:render.uncache() VHを使用:VHS)

[1]なViewHelperは結果をキャッシュするコンパイル可能インタフェースを使用AbstractConditionViewHelper、から誘導される、AbstractConditionViewHelperからコンパイル()メソッドを書き換えると次のように定数

\TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler::SHOULD_GENERATE_VIEWHELPER_INVOCATION 

返さなければならない:

public function compile(
    $argumentsVariableName, 
    $renderChildrenClosureVariableName, 
    &$initializationPhpCode, 
    \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode $syntaxTreeNode, 
    \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler $templateCompiler 
) { 
    parent::compile(
     $argumentsVariableName, 
     $renderChildrenClosureVariableName, 
     $initializationPhpCode, 
     $syntaxTreeNode, 
     $templateCompiler 
    ); 

    return \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler::SHOULD_GENERATE_VIEWHELPER_INVOCATION; 
} 
関連する問題