function ThumbShoeKeywords($pagename, $label = 'LinkedName') { global $ThumbShoeKeywordsGroup; $inval = PageTextVar($pagename, 'Keywords'); $out = ''; // don't process if there are already links there if (strpos($inval, '[[') !== false) { $out = $inval; } else { $array_sep = ''; if (strpos($inval, ';') !== false) { $array_sep = ';'; } $oo = array(); if ($label == 'Name') { $pn = str_replace($array_sep, ' ', $inval); $cpage = MakePageName($pagename, "{$ThumbShoeKeywordsGroup}.{$pn}"); $out = PageVar($cpage, '$Name'); } else { $parts = $array_sep ? explode($array_sep, $inval) : array($inval); foreach ($parts as $part) { $part = trim($part); if ($part) { $cpage = MakePageName($pagename, "{$ThumbShoeKeywordsGroup}.{$part}"); if ($label == 'LinkedTitle') { $oo[] = "[[{$cpage}|+]]"; } else { $oo[] = "[[{$cpage}|{$part}]]"; } } } } if ($array_sep == ',' or $array_sep == ';') { $out .= implode("{$array_sep} ", $oo); } else { if ($array_sep == '/' or $array_sep == ' ') { $out .= implode($array_sep, $oo); } else { $out .= implode(" {$array_sep} ", $oo); } } } rtrim($out); return $out; }
function PageVar($pagename, $var, $pn = '') { global $Cursor, $PCache, $FmtPV, $AsSpacedFunction, $ScriptUrl, $EnablePathInfo; if ($var == '$ScriptUrl') return PUE($ScriptUrl); if ($pn) { $pn = isset($Cursor[$pn]) ? $Cursor[$pn] : MakePageName($pagename, $pn); } else $pn = $pagename; if ($pn == '') return ''; if (preg_match('/^(.+)[.\\/]([^.\\/]+)$/', $pn, $match) && !isset($PCache[$pn]['time']) && (!@$FmtPV[$var] || strpos($FmtPV[$var], '$page') !== false)) { $page = ReadPage($pn, READPAGE_CURRENT); PCache($pn, $page); } @list($d, $group, $name) = $match; $page = &$PCache[$pn]; if (@$FmtPV[$var]) return eval("return ({$FmtPV[$var]});"); if (strncmp($var, '$:', 2)==0) return PageTextVar($pn, substr($var, 2)); return ''; }
function PageVar($pagename, $var, $pn = '') { global $Cursor, $PCache, $FmtPV, $AsSpacedFunction, $ScriptUrl, $EnablePathInfo; if ($var == '$ScriptUrl') { return PUE($ScriptUrl); } if ($pn) { $pn = isset($Cursor[$pn]) ? $Cursor[$pn] : MakePageName($pagename, $pn); } else { $pn = $pagename; } if ($pn) { if (preg_match('/^(.+)[.\\/]([^.\\/]+)$/', $pn, $match) && !isset($PCache[$pn]['time']) && (!@$FmtPV[$var] || strpos($FmtPV[$var], '$page') !== false)) { $page = ReadPage($pn, READPAGE_CURRENT); PCache($pn, $page); } @(list($d, $group, $name) = $match); $page =& $PCache[$pn]; if (strpos($FmtPV[$var], '$authpage') !== false) { if (!isset($page['=auth']['read'])) { $x = RetrieveAuthPage($pn, 'read', false, READPAGE_CURRENT); if ($x) { PCache($pn, $x); } } if (@$page['=auth']['read']) { $authpage =& $page; } } } else { $group = ''; $name = ''; } if (@$FmtPV[$var]) { return eval("return ({$FmtPV[$var]});"); } if (strncmp($var, '$:', 2) == 0) { return PageTextVar($pn, substr($var, 2)); } return ''; }
function TaggerLinksVar($pagename, $tagname, $catgroup, $label) { $inval = PageTextVar($pagename, $tagname); $outval = TaggerProcessTags($pagename, $catgroup, $inval, $label); rtrim($outval); return $outval; }
function bi_GetPageVar($pagename, &$page, $tag) { global $TimeISOZFmt, $RSSTimeFmt; $d = (int) PageTextVar($pagename, 'entrydate'); return "<{$tag}>" . ($tag == 'dc:date' ? gmstrftime($TimeISOZFmt, $d) : ($tag == 'pubDate' ? gmdate($RSSTimeFmt, $d) : ($tag == 'author' ? PageTextVar($pagename, 'entryauthor') : ''))) . "</{$tag}>\n"; }
function bi_Convert($src, $auth = 'admin', $dataset, $pagelist, $mode) { global $bi_ConvertRules, $bi_TagSeparator, $_GET, $SearchPatterns; $datarules = $bi_ConvertRules[$dataset]; $pagelist = MatchPageNames($pagelist, $SearchPatterns['default']); foreach ($pagelist as $i => $pn) { list($group, $name) = explode('.', $pn); #$name used to derive title. $pagetext = ''; $org = RetrieveAuthPage($pn, $auth, 0, READPAGE_CURRENT); echo "<b>{$pn}</b><br/>"; if (!$org) { echo 'No admin privs on page.<br/>'; continue; } $entryType = PageTextVar($pn, 'entrytype'); if ($mode == 'convert' && empty($entryType) || $mode == 'upgrade' && $entryType == 'blog') { #populate $new_field_val array for each $new_field_name based on $new_field_rules foreach ($datarules['new'] as $new_field_name => $new_field_rules) { $new_field_val[$new_field_name] = ''; #is the new field based on an old_field or was the field defined in the prior version, with the same name? if (isset($datarules['old'][$new_field_name])) { $new_field_val[$new_field_name] = PageTextVar($pn, $new_field_name); # Get basic separated list with no formatting if ($datarules['old'][$old_field]['format']) { $new_field_val[$new_field_name] = implode($bi_TagSeparator, preg_match_all('/' . $datarules['old'][$old_field]['format'] . '/', $new_field_val[$new_field_name], $m) ? $m[1] : array()); } } # Set default value if none calculated so far if (empty($new_field_val[$new_field_name]) && isset($datarules['new'][$new_field_name]['default'])) { $new_field_val[$new_field_name] = eval('return (' . $datarules['new'][$new_field_name]['default'] . ');'); } # Format the field if (isset($datarules['new'][$new_field_name]['format'])) { $new_field_val[$new_field_name] = str_replace('$1', $new_field_val[$new_field_name], $datarules['new'][$new_field_name]['format']); } else { $new_field_val[$new_field_name] = '(:' . $new_field_name . ':' . $new_field_val[$new_field_name] . ':)'; } $pagetext .= $new_field_val[$new_field_name] . "\n"; } } elseif ($mode == 'revert' && $entryType == 'blog') { $pagetext = PageTextVar($pn, 'entrybody') . "\n\n" . PageTextVar($pn, 'pmmarkup'); } else { echo 'Nothing to ' . $mode . '<br/>'; } if ($_GET['writetofile'] == 'true') { if (!empty($pagetext)) { $new = $org; $new['csum'] = $new['csum:' . $GLOBALS['Now']] = $GLOBALS['ChangeSummary'] = 'BlogIt Format: ' . $mode; $new['diffclass'] = 'minor'; $new['text'] = $pagetext; PostPage($pn, $org, $new); #Don't need UpdatePage, as we don't require edit functions to run echo 'BlogIt page attributes written.<br/>'; } else { echo 'Nothing to write.<br/>'; } } echo str_replace("\n", '<br/>', $pagetext . '<br/>'); } }
function MXDisplayAllPTVs($pagename, $list) { global $PCache; $pgout = array(); $out = array(); $plist = isset($list) ? explode(',', $list) : array($pagename); foreach ($plist as $pn) { $pn = MakePageName($pagename, $pn); $pgout[$pn][0] = "!!!![[{$pn}]]\n"; PageTextVar($pn, ''); foreach ($PCache[$pn] as $key => $val) { if (substr($key, 0, 3) != "=p_") { continue; } $pgout[$pn][] = "'''" . substr($key, 3) . "''': " . $val . "\\\\\n"; } if (!isset($pgout[$pn][1])) { unset($pgout[$pn]); continue; } sort($pgout[$pn]); $out[] = implode("\n", $pgout[$pn]); } return implode("\n", $out); }