1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php if (!defined('PmWiki')) exit();
- /* Copyright 2004 Patrick R. Michaud (pmichaud@pobox.com)
- This file is part of PmWiki; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version. See pmwiki.php for full details.
- This module sets the values of $PageStartFmt and $PageEndFmt,
- used by various modules to generate output pages. The general
- mechanism for page output is that a function such as HandleBrowse
- or HandleEdit will output the value of $PageStartFmt, followed
- by the action-specific content, followed by $PageEndFmt. The
- HTML comment <!--PageText--> in the template file denotes the
- location where $PageStart ends and $PageEnd begins. The
- HTML comment <!--HeaderText--> denotes where the contents of
- $HTMLHeaderFmt should be generated.
- The template file may also contain HTML comments of the form
- <!--PageHeaderFmt-->, <!--PageFooterFmt-->, etc. These
- have the side effect of putting the strings that follow into
- the variables $PageHeaderFmt, $PageFooterFmt, etc. and then
- placing references to those variables into $PageStartFmt or
- $PageEndFmt. This allows HandleBrowse and other functions to
- selectively disable headers and footers by setting the corresponding
- variable to the empty string.
- Versions 0.6.1 and 0.6.2 made use of an $HTMLHeaders variable
- that is now deprecated, use <!--HeaderText--> and $HTMLHeaderFmt
- instead.
- */
- SDV($FarmPubDirUrl,$PubDirUrl);
- SDV($PageTemplateFmt,"$FarmD/pub/skins/pmwiki/pmwiki.tmpl");
- SDV($PageLogoUrl,"$FarmPubDirUrl/skins/pmwiki/pmwiki-32.gif");
- SDV($PageLogoFmt,"<div id='wikilogo'><a href='$ScriptUrl'><img
- src='$PageLogoUrl' alt='$WikiTitle' border='0' /></a></div>");
- SDV($PageCSSListFmt,array(
- 'pub/css/local.css' => '$PubDirUrl/css/local.css',
- 'pub/css/$Group.css' => '$PubDirUrl/css/$Group.css',
- 'pub/css/$Group.$Title_.css' => '$PubDirUrl/css/$Group.$Title_.css'));
- foreach((array)$PageCSSListFmt as $k=>$v)
- if (file_exists(FmtPageName($k,$pagename)))
- $HTMLHeaderFmt[] = "<link rel='stylesheet' type='text/css' href='$v' />\n";
- if ($PageTemplateFmt) LoadPageTemplate($PageTemplateFmt);
- function LoadPageTemplate($tfilefmt) {
- global $PageStartFmt,$PageEndFmt,$BasicLayoutVars,$HTMLHeaderFmt;
- SDV($BasicLayoutVars,array('HeaderText','PageHeaderFmt','PageLeftFmt',
- 'PageTitleFmt', 'PageText','PageRightFmt','PageFooterFmt'));
- $k = str_replace('$HTMLHeaders','<!--HeaderText-->', # deprecated
- implode('',file(FmtPageName($tfilefmt,$pagename))));
- $sect = preg_split('#[[<]!--(/?Page[A-Za-z]+Fmt|PageText|HeaderText)--[]>]#',
- $k,0,PREG_SPLIT_DELIM_CAPTURE);
- $PageStartFmt = array_merge(array('headers:'),
- preg_split('/[[<]!--((?:wiki|file|function):.*?)--[]>]/',array_shift($sect),
- 0,PREG_SPLIT_DELIM_CAPTURE));
- $PageEndFmt = array();
- $ps = 'PageStartFmt';
- while (count($sect)>0) {
- $k = array_shift($sect);
- $v = preg_split('/[[<]!--((?:wiki|file|function):.*?)--[]>]/',
- array_shift($sect),0,PREG_SPLIT_DELIM_CAPTURE);
- if (substr($k,0,1)=='/') {
- $GLOBALS[$ps][] = "<!--$k-->";
- $GLOBALS[$ps][] = (count($v)>1) ? $v : $v[0];
- continue;
- }
- $GLOBALS[$k] = (count($v)>1) ? $v : $v[0];
- if (in_array($k,$BasicLayoutVars)) {
- $GLOBALS[$ps][] = "<!--$k-->";
- if ($k=='PageText') { $ps = 'PageEndFmt'; }
- if ($k=='HeaderText') $GLOBALS[$ps][] = &$HTMLHeaderFmt;
- $GLOBALS[$ps][] =& $GLOBALS[$k];
- }
- }
- array_push($PageStartFmt,"\n<div id='wikitext'>\n");
- array_unshift($PageEndFmt,'</div>');
- }
- ?>
|