Skip to content

3.11.20

Choose a tag to compare

@andrevanzuydam andrevanzuydam released this 25 Apr 09:50
· 1164 commits to v3 since this release

release: v3.11.20 — Frond filter + property access chain fix

Templates like {{ details | first.groupSummary }} were handing the
whole string "first.groupSummary" to the filter lookup, finding
nothing, and silently returning the unfiltered input. The
.groupSummary property access was lost.

Fix: before applying a filter segment, split on the first . that
sits outside parens + quotes. The part before is the filter call
(with any args), the part after is a property path resolved on the
filter result via a synthetic context so we reuse _eval_expr's
dotted + bracket resolution rather than writing a second traversal.

New helper _split_filter_name_and_path() tracks paren/bracket/
brace depth and quote state so filter-argument dots and format-
string dots don't false-split.

Applied at all three filter-application sites: the main
_eval_var_inner path, the autoescape-off _no_escape_eval_var path,
and the apply-filters-to-value utility.

Parity release with tina4-php 3.11.21. 4 regression tests mirror
the PHP suite's coverage: single property, chained property,
last-filter aggregator, and dots-in-args guard.

Full suite: 2300 pass, 28 skipped.