Closed ncla closed 1 year ago
Regression seems to have appeared in v2.0.27
. One version lower v2.0.26
produces the section + yield combo correctly (regex parser). Runtime parser however is broken regardless of version, produces the Array to string conversion
exception.
I was debugging exactly the same issue today. The exception happens in Statamic\Modifiers::joinplode in the implode() function.
When using the regex parser, the $value
passed to the function is a one dimensional array. When using the runtime parser, it is an array of arrays. The different parser seem to fetch the data differently, however I haven't yet found out where that happens.
Strangely enough, implode() seems to handle the arrays in array quite well on UNIX. The code runs perfectly on my server (PHP 8.1.8). However it crashes on my Mac (PHP 8.1.9, also tested on PHP 8.1.4).
Thanks all for your work on debugging this, we've had some time to review internally. It looks like there are two separate issues here but both appear to be upstream and will require action on Statamic's part to fix.
"Array to string conversion"... error
As above this is an issue with the join
modifier in the runtime parser, there is an open issue in the Statamic repo which we will keep an eye on, in the meantime, it looks like removing the separation string specification from the modifier (join=", "
-> | join
) fixes the issue and outputs the same value so we will release an update with this fix next week.
Sections not working with regex parser
This appears to be related to this issue which was raised by a member of our team, the issue appears to have been resolved when using the runtime parser but we perhaps need to account for this on our end by using the old view()
method if the site is configured to use the regex parser. We'll discuss internally and work on deploying a fix next week.
Thanks, Andrew
Fixed in 2.0.29
Reproducible repository (
seo-bug
branch): https://github.com/ncla/statamic-bugs/tree/seo-bugConsider the following:
layout.antlers.html
home.antlers.html
home.md
With Antlers parser set to
regex
The string "sus" from section/yield combo does not appear.
If I remove
{{ aardvark-seo:head }}
fromlayout.antlers.html
, the "sus" string does appear in output.With Antlers parser set to
runtime
Without any changes done in previous scenario, it throws exception.
Doing one of the following fixes the issue:
{{ aardvark-seo:head }}
fromlayout.antlers.html
meta_keywords
array from home.mdphp please support:details
output