My daughter runs a modified version of SepiaRiver’s Example Blog which worked fine on MODX 2.8. She now (accidentally) updated MODX to v3 and I now have to fix stuff…
After “repairing” the Namespacing issues, it still seems that generated MODX tags with an exclamation mark (for no caching) don’t work anymore—instead the tag is displayed on the web page.
on the web page, while $blog_article works fine. If I change !$blog_listing to $blog_listing in the above, it calls up block listing—but immediately shows the next [[!… tag in that. (reflect is just a filter snippet that returns the short class name (i.e., removes the namespace part.)
Observed behavior
It seems to me that—after the update to MODX 3—tags using [[!… don’t work anymore.
Nothing relevant is shown in MODX’ error protocol.
Expected behavior
Instead of displaying the tag, MODX 3 should parse it.
Darn. What else can I do to diagnose this? My daughter is already desperate to get her site up and running again… (and I was the one to tell her “always do the updates”… sigh)
Btw, the MODX Updater suggests to update to MODX 3.0.1-DEV (shown red). Should we do that?
Is it possible to make a fresh MODX3 installation on the same environment (maybe in a subfolder or a subdomain), to check if this is a general problem (on this environment) or if something is just corrupted on your current installation?
I don’t think this is an official release. So an update may not be a great idea.
It will be faster and it should avoid any possible nesting, cache, or interference issues, though it doesn’t help determine whether or not you’ve discovered a bug in MODX 3.
In the last 3 months, most problems related to MODX 3 and the parser were caused by a change in how output modifiers are parsed. So although your problem seems to be different, maybe try changing this line in the code
to this (how it was in MODX 2.x)
if (preg_match_all('~:([^:=]+)(?:=`(.*?)`[\r\n\s]*(?=:[^:=]+|$))?~s', $modifiers, $matches)) {
@halftrainedharry: Wow, your proposed change actually worked! Thanks a bundle.
I changed /core/src/Revolution/Filters/modInputFilter.php as proposed, had to clear MODX’ cache and voilà—all back to good!
Being a change in core, we now of course fear it might be overwritten with the next update. Maybe this could also be tested by others and possible (re-)included in the release?