1

I have a super table field (scoreRanges) that has two columns: mx range slider (range) & rich text (summary). Some entries can have multiple rows:

enter image description here

I'm trying search a row in that field that has a range between a certain value. MX range slider saves data ranges to the database text field like 9;20 which is a range from 9 to 20.

Does anyone have an idea of how to search for a row between a certain range? So far I have tried this which returns no results.

{% for range in profile.scoreRanges.range('and', '>=' ~ result.points, '<=' ~ result.points) %}
...
{% endfor %}

On the template side, I have variables like {{ range.range.from }} & {{ range.range.to }} to use.

Update

Currently not ideal. Using a conditional to filter the correct row, but will work now ¯\_(ツ)_/¯

{% for range in profile.scoreRanges %}
    {% if result.points >= range.range.from and result.points <= range.range.to %}
        <p><span class="label label-warning">Range:</span> {{ range.range.from }} - {{ range.range.to }}<br> <span class="label label-primary">Your Score:</span> <b>{{ result.points }}</b></p>
        {{ range.summary }}
    {% endif %}
{% endfor %}
3

The way the plugin is currently written, it won't support your initial syntax. i.e. range('and', '>=' ~ result.points, '<=' ~ result.points). It would need to override BaseFieldType's modifyElementsQuery to support that syntax.

You could slightly improve on your solution by using the MN Break and Continue plugin to at least break out of the for loop once a match is found.

|improve this answer|||||
  • Hey, thanks for your input and pointers Brad. I'll use your solution as a temporary band-aid. Going to put in a FR with Max to see if he will add the modifyElementsQuery() method. – Siebird Aug 9 '16 at 14:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.