[pmwiki-devel] markup order for group headers

marc gmane at auxbuss.com
Mon Jan 29 12:43:29 CST 2007


Patrick R. Michaud said...
> On Sat, Jan 27, 2007 at 06:28:26PM -0000, marc wrote:
> > Markup in group headers (and site headers when enabled) appears to be 
> > run after markup in PageText.
> > 
> > I'm sure there's a good reason for this, but I'd like to understand why.
> 
> If you're talking about the GroupHeader pages, then no, they're
> run at the same time as page's markup.  In fact, GroupHeader effectively
> works by adding the equivalent of
> 
>     (:include GroupHeader:)(:nl:)
> 
> to the beginning of the page text before processing the markup.
> (The actual text to be prepended is given by $GroupHeaderFmt.)

Thanks for this Patrick.

This doesn't seem to be happening here. At least, I'm probably missing 
something obvious.

Here's a demo:

  http://www.auxbuss.com/pmwiki/Main/WikiSandbox

FYI: In config.php, I have:

  $GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader:)(:nl:)' . 
$GroupHeaderFmt;

Although, as I mention below, I've tested this on clean install also.

I'm testing this by trying to populate a dropdown on a page with values 
supplied in either GroupHeader or SiteHeader. The markup calls a 
function that drops values into a global array (that is then used by the 
dropdown).

So, say, in GroupHeader I have

  (:auxselectdata test2 1 2 3':)
  (:auxSelect test2 test2 text='GroupHeader: ':)

The first markup basically does:

  $AuxSelectData[test2] = array(1,2,3);

while the second displays the dropdown, populated with $AuxSelectData
[test2]

That works (in the GroupHeader) and displays above page text, as normal.

Now, when I add the same markup to the page (but use, say   
(:auxselectdata test2 4 5 6':) to distinguish it), the function the 
markup calls issues an error stating that an existing array cannot be 
overwritten (I do this as a security measure). But the error is raised 
within the GroupHeader. This is confirmed by the fact that both the 
dropdown on the page and in the header contain the population data from 
the page - 4,5,6 in this case.

I can extend this to include SiteHeader and exactly the same thing 
happens.

IOW, the function called by (:auxselectdata:) in the page is being 
called before both the Group and Site headers.

> > As it is, I was hoping to provide some markup to set some values in 
> > site/group header, but the order stymies this.
> 
> I'm afraid it must be another issue that is causing this.  :-)

Well, something funky is going on. I tried the same thing on my clean 
install and exactly the same thing occurs.

-- 
Cheers,
Marc




More information about the pmwiki-devel mailing list