[pmwiki-devel] Markup Processing Order

Patrick R. Michaud pmichaud at pobox.com
Fri Jul 18 11:25:43 CDT 2008


On Fri, Jul 18, 2008 at 11:29:56AM -0400, DaveG wrote:
> I've created a markup which calls a function. I'm trying to override 
> $DefaultPageTextFmt, but if I do this inside the markup function the 
> override doesn't occur. Placing the code inside the main body of the 
> recipe works fine, but obviously triggers all the time, rather than when 
> the markup is used..
> 
> I suspect I simply need to change the processing order of the markup 
> some how. Suggestions?

By the time the markup is being processed, it's too late to do anything
useful with $DefaultPageTextFmt.  $DefaultPageTextFmt determines what
text (markup) to use if a page doesn't exist -- thus it has to be
handled _before_ any markup processing takes place.

> Here's the markup:
>    Markup("pmgallery", 'inline', "/\\(:pmgallery\\s*(.*?):\\)/se", 
> "Keep(pmGallery(PSS('$1')))");
> 
> And the override code:
>    $GLOBALS['DefaultPageTextFmt'] = '(:include {$Group}.pmPageNotFound:)';

What you may want to do instead is:

    SDV($DefaultPageTextFmt, 
      '(:include {$Group}.pmPageNotFound $[{$SiteGroup}.PageNotFound:)');

This uses the pmPageNotFound page of the current group if it exists,
falling back to Site.PageNotFound if it doesn't.

Pm



More information about the pmwiki-devel mailing list