2017-11-17 2 views

Antwort

0

Ihr Beispiel Code deaktiviert Cache für die komplette Seite. Sie müssen jedoch nur den Cache für die Bereiche deaktivieren, in denen Sie die benutzerspezifischen Daten anzeigen. Wie Sie einen Teil von Cachen yo Uneed ausnehmen kann gewählt werden, ob nur Element

  • einen Inhalt zwischenzuspeichern (vor allem für Plugins ist das Standardverhalten: nur das Plugin als uncachable in Ihrem ext_localconf.php erklären)
  • eine Spalte (stellen Sie sicher, eine COA_INT (oder ein anderes Objekt uncached) verwenden in Ihrem TypoScript)
  • ein Viewhelper (machen Sie Ihren Viewhelper uncachable [1] oder verwenden Sie die v:render.uncache() VH von EXT: vhs)

[1] als ein Viewhelfer von AbstractConditionViewHelper abgeleitet wird, die die kompilierbare Schnittstelle verwendet, die das Ergebnis speichert, muß die Kompilierung() Methode von AbstractConditionViewHelper die Konstante

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

wie folgt neu geschrieben werden, und dem Rück:

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; 
}