Nucleus Core

Login!
Register as a new userLost password?

for Project:

This is the tracker for the Core of the Nucleus CMS-project (Nucleus CMS Website)

FS#128 — Don't show DISALLOWED(XXXX) errors

Attached to Project— Nucleus Core
Opened by Wouter Demuynck (karma) - Sunday, 04 December 2005, 07:51PM
Last edited by Wouter Demuynck (karma) - Sunday, 04 December 2005, 07:54PM
Feature Req.
Functionality   → Parser
Requires testing
Wouter Demuynck
All
Low
Normal
3.22
3.3
Undecided
0%
Instead of showing DISALLOWED(skinvar) errors, output "<%skinvar(params)%>"
This task depends upon

This task blocks these from closing
Comment by Wouter Demuynck (karma) - Sunday, 04 December 2005, 07:54PM

In CVS now


Comment by Stas Verberkt (Legolas) - Monday, 23 January 2006, 04:33PM

What if you have a post like this: http://karma.nucleuscms.org/item/15/catid/3 in which you show that the parser also handles %>var<%, it seems that that would become <%var%> and the demonstration would be gone.


Comment by Wouter Demuynck (karma) - Monday, 23 January 2006, 08:46PM

The particular post at http://karma.nucleuscms.org/item/15/catid/3 would stay the same: the greater than/lesser than characters are HTML encoded in the post. (they would have shown up as DISALLOWED otherwise)

Output 'corruption' might indeed occur when:

- outputting non-html / non-xml that contains a structure like %>something<%, <%something%< or %>something%>
- outputting html/xml containing a structure like %>something%> (the others cannot occur as such in valid xml/html)

In both cases, previous Nucleus versions would display a DISALLOWED error.

To output tags as they appear in the skin/template source, the Nucleus parser would have to be able to keep track of the start/end tokens, or learn to only parse <%xxx%>. Both these enhancements, are not really worth the develoment time/performance penalty, in my opinion.


Comment by Stas Verberkt (Legolas) - Tuesday, 24 January 2006, 06:42PM

Ok, (so the <%image%> tags in posts are also htmlencoded?)

btw, the time shouldn't be that much? It looks as simple as: preg_replace('/<%(.*?)%>/e', 'parse('\\1')', $output);, but this could be me just thinking things are easy... =P