Hello
i am looking at it, and i have just seen that:
Code:
if ($menu) foreach($menu->query as $_varname => $_ignore) $safeurlparams[$_varname] = 'STRING';
- is correct code
because the above are not PARAMETERs, they are the HTTP query variables added to non SEF URLs,
-
they make the SEF and non-SEF urls have the same cache-ID
thus you have smaller cache size wasted,
now, if you add the menu itemID , then you can skip the above
- no wrong page will be serverd
- but cache will be a little larger, because the SEF and non-SEF urls will have a different cache ID
of course you can argue that your site will never generate non-SEF urls, thus the above effect will not occur
But to cut this discussion short,
= it is best to have both:
Code:
if ($menu) foreach($menu->query as $_varname => $_ignore) $safeurlparams[$_varname] = 'STRING';
and
Code:
if ($menu) $safeurlparams[(string)$menu->id]='STRING';
Finally,
thanks for pointing out this issue,
indeed any menu item that
includes parameters that effect the displayed page, MUST add the menu item id to the safeurlparams that create the cache-ID of the page
Fix will be in v3.0.14