1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php if (!defined('PmWiki')) exit();
- SDV($VarPagesFmt,array('PmWiki.Variables','PmWiki.BasicVariables',
- 'PmWiki.LayoutVariables','PmWiki.LinkVariables','PmWiki.EditVariables',
- 'PmWiki.UploadVariables','PmWiki.OtherVariables','PmWiki.MailPosts'));
- SDV($VarLinkExistsFmt,"<a class='varlink' href='\$_Url'><code class='varlink'>\$_LinkText</code></a>");
- SDV($VarLinkMissingFmt,"\$_LinkText");
- $DoubleBrackets["/^:\\$($WikiWordPattern):/"] = ":[[#$1]]\$$1:";
- $LinkPatterns[780]["\\$$WikiWordPattern"] = 'FmtVarLink';
- $InlineReplacements['/\\[\\[\\$Varindex\\]\\]/e'] = 'Keep(VarIndexList())';
- function FmtVarLink($pat,$ref,$txt) {
- global $VarIndex,$VarLinkExistsFmt,$VarLinkMissingFmt;
- if (!isset($VarIndex)) { VarIndexLoad(); }
- $link = substr($ref,1);
- $rtxt = (!is_null($txt)) ? $txt : $ref;
- if (!$VarIndex[$link]['url'])
- return str_replace('$_LinkText',$rtxt,$VarLinkMissingFmt);
- return str_replace(array('$_LinkText','$_Url'),
- array($rtxt,$VarIndex[$link]['url']),$VarLinkExistsFmt);
- }
- function VarIndexLoad() {
- global $VarPagesFmt,$VarIndex,$WikiWordPattern;
- if (!isset($VarIndex)) $VarIndex=array();
- foreach($VarPagesFmt as $v) {
- $vname = FmtPageName('$PageName',$v);
- $vpage = ReadPage($v);
- if (!$vpage) continue;
- if (!preg_match_all("/\n:\\$($WikiWordPattern):/",$vpage['text'],$match))
- continue;
- foreach($match[1] as $n) {
- $VarIndex[$n]['page']=$vname;
- $VarIndex[$n]['url']=FmtPageName("\$PageUrl#$n",$vname);
- }
- }
- }
- function VarIndexList() {
- global $VarIndex;
- if (!isset($VarIndex)) VarIndexLoad();
- ksort($VarIndex);
- $out = "<table><tr><th>Variable</th><th>Documented in</th></tr>\n";
- foreach($VarIndex as $v=>$a)
- $out .= FmtPageName("<tr><td><a class='varlink' href='{$a['url']}'><code>$$v</code></a></td><td><a
- href='\$PageUrl'>\$Title</a></td></tr>\n",$a['page']);
- $out .= "</table>";
- return $out;
- }
- ?>
|