*** pmwiki.bak Sun May 31 05:09:14 2009 --- pmwiki.php Wed Jun 24 14:29:27 2009 *************** *** 721,731 **** ## $PageTextVarPatterns) into a page's $PCache entry, and returns ## the property associated with $var. function PageTextVar($pagename, $var) { global $PCache, $PageTextVarPatterns; if (!@$PCache[$pagename]['=pagetextvars']) { $pc = &$PCache[$pagename]; $pc['=pagetextvars'] = 1; - $page = RetrieveAuthPage($pagename, 'read', false, READPAGE_CURRENT); if ($page) { foreach((array)$PageTextVarPatterns as $pat) if (preg_match_all($pat, @$page['text'], $match, PREG_SET_ORDER)) --- 721,741 ---- ## $PageTextVarPatterns) into a page's $PCache entry, and returns ## the property associated with $var. function PageTextVar($pagename, $var) { + global $PCache; + if (!@$PCache[$pagename]['=pagetextvars']) { + $page = RetrieveAuthPage($pagename, 'read', false, READPAGE_CURRENT); + PTVCache($pagename, $page); + } + return @$PCache[$pagename]["=p_$var"]; + } + + ## PTVCache loads a page's text variables (defined by + ## $PageTextVarPatterns) into a page's $PCache entry + function PTVCache($pagename, $page) { global $PCache, $PageTextVarPatterns; if (!@$PCache[$pagename]['=pagetextvars']) { $pc = &$PCache[$pagename]; $pc['=pagetextvars'] = 1; if ($page) { foreach((array)$PageTextVarPatterns as $pat) if (preg_match_all($pat, @$page['text'], $match, PREG_SET_ORDER)) *************** *** 735,741 **** } } } - return @$PCache[$pagename]["=p_$var"]; } --- 745,750 ---- *************** *** 1661,1666 **** --- 1670,1676 ---- $text = preg_replace(array_keys($SaveAttrPatterns), array_values($SaveAttrPatterns), $new['text']); $LinkTargets = array(); + PTVCache($pagename, $new); // cache the new values for use on this load $html = MarkupToHTML($pagename,$text); $new['targets'] = implode(',',array_keys((array)$LinkTargets)); $p = & $PCache[$pagename]; *************** *** 1738,1743 **** --- 1748,1755 ---- global $IsPageSaved, $FmtV; if (@$_POST['preview']) { $text = '(:groupheader:)'.$new['text'].'(:groupfooter:)'; + PCache($pagename, $new); + PTVCache($pagename, $new); $FmtV['$PreviewText'] = MarkupToHTML($pagename,$text); } }