2008-01-25
JasonX
When syntax plugins are called during the procedure of page rendering, the page they are processing is not necessarily the page identified by the global variable $ID (nor the return value of getID), which is the page being requested in the URL.
This happens, for example, when rendering a internal link, which may trigger p_render_metadata() - then the linked page will be parsed, but the ID seen by the syntax plugins (i.e. $ID) while parsing it is not its true ID, but that of the page including the link.
In many cases, the true ID of the page being parsed is very important. For instance, the Discussion plugin (http://wiki.splitbrain.org/plugin:discussion) should know that true ID so that it can create the .comment file for the page being parsed (say PageA) - but by using the $ID variable (as it does now), the .comment file may be mistakenly created for a page (say PageB) simply containing a link to PageA, if PageB is requested first.