Cookbook /
HrefPageDirective
Summary: How to get the href address to a particular wiki link
Version:
Status:
Maintainer: MarkS
Categories: Links
Discussion: HrefPageDirective-Talk?
Question
How can I get the href address to a particular wiki link?
Answer
- Use the built-in page variable {$PageUrl} that contains the page URL. Demo below. --Petko
* Current page: {$PageUrl} * Other page: {Main.HomePage$PageUrl} |
|
Recipe for old PmWiki versions
Prerequisites: requires at least PmWiki version: 2.0.10 (should work on earlier versions); last tested on PmWiki version: 2.0.10 and version 2.1.26
Allow a (:href Main.StaffInfo :) Page Directive.
Example code to get this working;
if (defined('PmWiki')){ ## (:href Main.StaffInfo :) Markup("href","<{$fmt}", "/\\(:href\\s(.*?)\\s*:\\)/e", "Keep(getHrefFromWikiLink(\$pagename,PSS('$1')),'L')"); } function getHrefFromWikiLink($pagename, $tgt=NULL, $txt=NULL){ #echo "getHrefFromWikiLink"; $link = MakeLink($pagename,$tgt,$txt); $hrefToken = "'"; $hrefStart = strpos($link, "'", strpos($link, "href")); $hrefStop = strpos($link, "'", $hrefStart + 1); $hrefText = substr($link, $hrefStart + 1, $hrefStop - $hrefStart - 1); #echo $hrefText; return $hrefText; }
Notes
- The "<" value is important and could be changed depending on what order you want the directive to execute in
- It all hinges on the form of what the pmwiki "MakeLink" function returns.
Releases
Contributors
Comments
See discussion at HrefPageDirective-Talk?