Publisher does not support the Fluid field type. Please do not contact asking when support will be available.

If you purchased an add-on from expressionengine.com, be sure to visit boldminded.com/claim to add the license to your account here on boldminded.com.

Ticket: Bloqs caching feature doesn’t work if bloqs field is on a template more than once

Status Resolved
Add-on / Version Bloqs 4.10.2
Severity
EE Version 6.1.6

Aasun Eble

Nov 17, 2021

I have a pretty complex structure of bloqs fields.  And on some templates, I’m using the bloqs tag pair multiple times on the same template (some small parts of bloqs content is being displayed as title/header content on other areas of the template outside of the main bloqs content).

When bloqs caching is enabled, the templates with multiple tag pairs of the same bloqs field do not render correctly.  The first instance of the bloqs field tag pair is cached, then that content is reused further down the template, even though the content being displayed is different.

Would love to either have bloqs naturally support this, or to add a tag pair parameter (key, or tag like speedy, or bloq id, or other identifier) for the caching to be able to distinguish between the different uses on the same template.

Example use.  You’ll see three different positions for the {vendor_team}{/vendor_team} component bloqs field.  The first two, I’m just displaying info about the venue.  The third instance, I’m showing the complete vendor team.

Because the first instance of the bloq field is cached, position #1 displays correctly when cached. But, positions #2 and #3 are not displaying because their fields and structure are not used in the position #1 tag pair.

Position #1:
Using this in a breadcrumb at the top of the page to show just the venue
{vendor_team}{block_venue}{vendor}

Weddings / {wedding_location:city}, {wedding_location:state} / {vendor_name} / {title}

{/vendor}{/block_venue}{/vendor_team}


Position #2:
Using this as a subhead for the page under the Wedding name, showing just the venue

{title}

{vendor_team}{block_venue}{vendor}

{vendor:title}

{/vendor}{/block_venue}{/vendor_team}


Position #3:
Using this to show the full set of the bloqs fields for the vendor_team component.

Wedding Vendor Team

{vendor_team}
{block_planner_designer}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Planner / Designer
{vendor:title}


{/vendor}
{/block_planner_designer}
{block_photographer}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Photographer
{vendor:title}


{/vendor}
{/block_photographer}
{block_venue}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Venue
{vendor:title}


{/vendor}
{/block_venue}
{block_flowers}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Flowers
{vendor:title}


{/vendor}
{/block_flowers}
{block_videographer}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Videographer
{vendor:title}


{/vendor}
{/block_videographer}
{block_caterer}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Caterer
{vendor:title}


{/vendor}
{/block_caterer}
{block_cake}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Cake
{vendor:title}


{/vendor}
{/block_cake}
{block_invitations}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Invitations
{vendor:title}


{/vendor}
{/block_invitations}
{block_hair_makeup}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Hair & Makeup
{vendor:title}


{/vendor}
{/block_hair_makeup}
{block_band}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Band
{vendor:title}


{/vendor}
{/block_band}
{block_dj}
{vendor}

{if notes != ""}{notes}{/if}

Wedding DJ
{vendor:title}


{/vendor}
{/block_dj}
{block_music}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Music
{vendor:title}


{/vendor}
{/block_music}
{block_lighting_decor}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Lighting & Decor
{vendor:title}


{/vendor}
{/block_lighting_decor}
{block_rentals}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Rentals
{vendor:title}


{/vendor}
{/block_rentals}
{block_officiant}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Officiant
{vendor:title}


{/vendor}
{/block_officiant}
{block_dress}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Dress
{vendor:title}


{/vendor}
{/block_dress}
{block_shoes}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Shoes
{vendor:title}


{/vendor}
{/block_shoes}
{block_hair_accessories}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Hair Accessories
{vendor:title}


{/vendor}
{/block_hair_accessories}
{block_bridesmaids_dresses}
{vendor}

{if notes != ""}{notes}{/if}

Bridesmaids Dresses
{vendor:title}


{/vendor}
{/block_bridesmaids_dresses}
{block_suits_tuxedos}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Suits & Tuxedos
{vendor:title}


{/vendor}
{/block_suits_tuxedos}
{block_rings}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Rings
{vendor:title}


{/vendor}
{/block_rings}
{block_other}
{vendor}

{if notes != ""}{notes}{/if}

Wedding Other
{vendor:title}


{/vendor}
{/block_other}
{/vendor_team}

 

 

#1

BoldMinded (Brian)

Closing this out because you can work around it, you just need to make each tag pair unique. E.g.

{bloqs_field cache_breaker="field1"}
    ... tag pairs here ...
{bloqs_field}

{bloqs_field cache_breaker="field2"}
    ... tag pairs here ...
{bloqs_field}

It doesn’t matter what the parameter name or value is, they can be whatever you want, they just have to be unique.

Login to reply