[Frage] Disable caching when rendering a fluidcontent content element


  • 1
  • jenses jenses
    Flash Gordon
    1 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    06. 06. 2016, 09:42

    https://fluidtypo3.org/viewhelpers/vhs/2.1.4/Render/UncacheViewHelper.html

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    06. 06. 2016, 11:01

    Oder mach die Cookie-Sache mit JS.

    http://www.aemka.de/

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    06. 06. 2016, 14:20

    Danke für eure Antworten. Auf den VHS Viewhelper bin ich auch schon gestoßen, allerdings weiß ich nicht so ganz wie ich den hier einsetzen kann.

    Ich habe ein Fluid Template in dem ich den Content auf jeder Seite entsprechend einbinde. Mein Contentent Element gibt jetzt einiges an HTML aus, was gerne gecacht werden kann und nur ein kleiner Teil soll nicht gecacht werden.

    [b]Beispiel:[/b]
    Content Element legt Div mit bestimmten CSS Klassen an, die durch das Content Element vom BE User festgelegt werden könnnen. In dem Div soll ein Bild ausgegeben werden, welches abhängig vom Cookie ist. Der Div mit seinen Klassen ist bei jeden Seitenaufruf gleich, kann also gecacht werden. Das Bild soll aber bei jedem Seitenaufruf neu "berechnet" werden.

    [b]Wie die Caching Struktur von Typo3 genau aufgebaut?[/b]
    Wenn ich ein Partial oder eben den Content rendern lasse und Cache eingeschaltet ist, wird dann das gesamte Partial/Content gecacht? Oder wird untersucht, ob sich innherhalb des Partials Content befindet, der nicht gecacht werden soll?

    Vielen Dank noch einmal bis hier hin.

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    06. 06. 2016, 14:25

    Oder mach die Cookie-Sache mit JS.

    Ist leider in diesem Fall nicht erwünscht/möglich.

    Habe jetzt vielleicht doch eine Idee, werde ich daheim mal testen. Hier anhand dieses Beispiels: https://fluidtypo3.org/library/code-examples.html?tx_fluidshare_display[gist]=5&tx_fluidshare_display[action]=display&tx_fluidshare_display[controller]=Gist&cHash=e403004449572e5ede2dd38d6d268f99

    Siehe Zeile 29.

    1. <div xmlns:flux="http://typo3.org/ns/FluidTYPO3/Flux/ViewHelpers"
    2. xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
    3. xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
    4.  
    5. <f:layout name="Content" />
    6.  
    7. <f:section name="Configuration">
    8. <flux:form id="gallery" wizardTab="MG">
    9. <flux:field.inline.fal name="settings.images" multiple="TRUE" maxItems="20" />
    10. </flux:form>
    11. </f:section>
    12.  
    13. <f:section name="Preview">
    14. <b><f:translate key="flux.gallery" /></b>
    15. </f:section>
    16.  
    17. <f:section name="Resources">
    18. </f:section>
    19.  
    20. <f:section name="Item">
    21. <li><a href="{image.url}" title="{f:if(condition: image.description, then: '{image.title}: ', else: '{image.title}')}{image.description}" rel="gallery"><f:image treatIdAsReference="TRUE" src="{image.id}" alt="{image.title}" title="{f:if(condition: image.description, then: '{image.title}: ', else: '{image.title}')}{image.description}" width="170c" height="170c" /></a></li>
    22. </f:section>
    23.  
    24. <f:section name="Main">
    25. <div id="gallery">
    26. <div class="gallery_list">
    27. <ul class="xyztestclass>
    28. <f:for each="{v:content.resources.fal(field: 'settings.images')}" as="image">
    29. <v:render.uncache section="Item" arguments="{_all}" />
    30. <f:comment>
    31. <f:render section="Item" arguments="{_all}" />
    32. </f:comment>
    33. </f:for>
    34. </ul>
    35. </div>
    36. </div>
    37. </f:section>
    38.  
    39. </div>

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    07. 06. 2016, 01:23

    Mittlerweile bin ich einen Schritt weiter.

    Habe im dem Ordner, in dem auch meine FluidContent Struktur liegt unter Private/ einen Partials Ordner angelegt.

    Diese Partials kann ich mit v:render.uncache nun Problemlos aufrufen. Sections in den Partials funktionieren auch. Nur kann dieser Viewhelper im Gegensatz zum normalen render Viewhelper keine Sections im gleichen Dokument rendern.

    Möchte ich den uncache Viewhelper in dem Layout File meines Templates verwenden, kommt allerdings noch immer eine Fehlermeldung: Extension key "" is NOT loaded!

    C:\xampp\htdocs\hht_7\typo3\sysext\fluid\Classes\View\TemplateView.php (Z.202):
    [code]00200: /** @var $actionRequest \TYPO3\CMS\Extbase\Mvc\Request */
    00201: $actionRequest = $this->controllerContext->getRequest();
    00202: return array(str_replace('@packageResourcesPath', ExtensionManagementUtility::extPath($actionRequest->getControllerExtensionKey()) . 'Resources/', $this->templateRootPathPattern));
    00203: }
    [/code]

    Es sieht so aus, als hätte meine Template-Extension keinen Extension Key, bzw. er kann in diesem Fall nicht gefunden werden. Hat jmd eine Idee, wie man den Fehler beheben kann?

  • 1