Query Groups in BricksBuilder and sort them
- This topic has 1 reply, 2 voices, and was last updated 2 years ago by
Peter.
-
AuthorPosts
-
April 13, 2023 at 7:27 PM #41479
Tobias Haas
ParticipantHey dear Metabox team,
In Bricks Builder it is relatively easy to query and output a group. But how can you filter or sort them?
I have a similar structure on another site, I made a MB view for it - with help from this community.
But since an MB View doesn't work in a slider in Bricks, I need to create it in Bricks and query it properly.I know you probably aren't familiar with BricksBuilder, but maybe you can give me a hint on how best to implement this, then I could research further with that information or check the Bricks Documentation.
This is the working MB View, IDs are all the Same in my new Case
{# Get the settings field #} {% set erste_mannschaft = site.fck.erste_mannschaft %} {# Using a ternary operator: if there are rows in the array make sure to (|sort) them first on timestamp in reverse order; and (|filter) so we only keep the timestamps higher than current time; #} {% set erste_mannschaft = erste_mannschaft|length >= 1 ? erste_mannschaft |sort( (a,b) => a.date_nextmatch_erste.timestamp < b.date_nextmatch_erste.timestamp ) |filter( v => v.date_nextmatch_erste.timestamp < mb.microtime(true) ) : erste_mannschaft %} {# Lets just slice the result to last 3 results #} {% for clone in erste_mannschaft|slice(0,3) %} <div class="fck-table"> <p class="c-tagline margin-bottom--s center--self text--center"> {{ clone.Liga_erste.value }} // {{ clone.date_nextmatch_erste.timestamp|date( "d.m.Y \u\m H:i" ) }} Uhr </p> <div class="grid--5 fck-next-match"> <div class="col-span--2 fck-team-block-2"> <div class="aspect--1-1"> <img class="aspect--1-1" src="{{ clone.heimmannschaft_erste.thumbnail.medium_large.url }}" width="70" height="70" alt="{{ clone.heimmannschaft_erste.thumbnail.medium_large.alt }}"> </div> <div class="fck-team-name text--right">{{ clone.heimmannschaft_erste.title }}</div> </div> <div class="fck-vs-nextgame">{{ clone.ergebnis_heim_erste }} : {{ clone.ergebnis_auswarts_erste }}</div> <div class="col-span--2 fck-team-block-2 fck-reverse"> <div class="fck-team-name">{{ clone.auswaerts_erste.title }}</div> <div class="col-start--2 aspect--1-1"> <img class="aspect--1-1" src="{{ clone.auswaerts_erste.thumbnail.medium_large.url }}" width="70" height="70" alt="{{ clone.auswaerts_erste.thumbnail.medium_large.alt }}"> </div> </div> </div> </div> {% endfor %}
April 15, 2023 at 10:32 PM #41504Peter
ModeratorHello,
Not sure if it can help but I think you can try to use the PHP function array_filter() to filter the value in an array.
https://stackoverflow.com/questions/45778382/how-can-i-filter-values-from-an-array-and-then-sort-them-by-a-custom-orderFurthermore, please contact Bricks builder support to get advanced help.
-
AuthorPosts
- You must be logged in to reply to this topic.