On Monday 18 January 2010 18:45:02, Randy Brown wrote :
> I am working on a recipe that provides the user with a directive that
>  selects a page text variable found on a specified page. Unfortunately, I'm
>  finding that if the PTV contains a link whose target is {$FullName}, the
>  link appends "FullName" to the target. For example
> 
> on Main.MyPage:
> 
> MyPTV: [[{$FullName}?action=...etc.
> 
> The directive mistakenly gives me a link to a page named
>  "Main.MyPageFullName" as if I had written
> 
> [[{$FullName}FullName?action=...etc.

Isn't it more something like {Main.MyPage$FullName}?action= ...?

> Why does this transformation happen?

Because normally {$FullName} and [[Page]] refer to the physical page where 
they are written. When you get some text/section/trail/PTV from a page 
different from the current one, all links and page(text)variables are 
rewritten so they wouldn't break:
* {$Variable} becomes {Group.Page$Variable}
* [[Page]] becomes [[OriginalGroup/Page]]

This way, all cross-group links should continue to link to the pages they were 
intended to.

> How can I prevent it?

$QualifyPatterns is an array containing the re-writing rules. If you globally 
unset() it before calling PageVar(), and restore it after, it should work 
(untested, I'm not sure if it is the best way to do this).

Petko

_______________________________________________
pmwiki-devel mailing list
pmwiki-devel@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-devel

Reply via email to