'.html', 'htmldir' => '../', //using relative file paths with HTML files in Group directories 'exclude' => "*.RecentChanges,*.Group*,Site.*,SiteAdmin.*", //wildcard patterns to exclude pages 'include' => PageVar($pagename, '$Group').".*", 'hidden' => 'PageTopActionsFmt,PageTopSearchFmt,PageFootActionsFmt,PageActionFmt,PageTopBarFmt,PageTextFooterFmt,PageFootMenuFmt', //excluded skin templ sections 'htmllabel' => 'HTML', //default html label for {[pagelink]} 'wikilabel' => 'Wiki', //default wiki label for {[pagelink]} 'htmltooltip' => 'go to HTML page', //tooltip for {[pagelink ..]} link to HTML page 'wikitooltip' => 'go to Wiki page', //tooltip for {[pagelink ..]} link to wiki page 'redirect' => false, //true: redirects to HTML page 'update' => true, //true: HTML page will automatically be created when saving a wiki page as part of edits 'pause' => 0, //delay in secs for page refresh when iterating pagelist pages 'htmlecho' => false, //false, //true: show html page while saving, flashed briefly or for 'pause' seconds 'batch' => true, //true: batch processing is enabled 'session' => true, //true: batch process starts new Session and uses SESSION variables 'test' => false, //true: run export process without actually saving HTML files 'list' => false, //true: run htmlbatch process to list pages to be processed. No processing takes place. )); if ($Lang && $EnableLangFolders==1) $SaveHTML['htmldir'] = $SaveHTML['htmldir'].$Lang.'/'; //for language-specific subfolders, using MultiLanguageViews $SaveHTML['pubdir'] = trim(strrchr($PubDirUrl,'/'),'/'); $SaveHTML['rooturl'] = dirname(dirname($ScriptUrl)); $SaveHTML['farmpubdir'] = trim(strrchr($FarmPubDirUrl,'/'),'/'); $ScriptPathArr = explode("/",$_SERVER['SCRIPT_NAME']); $SaveHTML['scriptname'] = array_pop($ScriptPathArr); $SaveHTML['wikidir'] = array_pop($ScriptPathArr).'/'; $SaveHTML['htmlurl'] = $SaveHTML['rooturl'].preg_replace('!^\.\.\/!','/',$SaveHTML["htmldir"]); $group = PageVar($pagename,'$Group'); $name = PageVar($pagename,'$Name'); # page variables for non-relative page urls $FmtPV['$HTMLPageUrl'] = '$GLOBALS["SaveHTML"]["htmlurl"].$group."/".$name.$GLOBALS["SaveHTML"]["suffix"]'; $FmtPV['$WikiPageUrl'] = '"$ScriptUrl?n=$group/$name"'; //this will mot be rewritten when exporting #handlers and authorisations $HandleAuth['html'] = 'edit'; $HandleActions['html'] = 'HandleExportHTML'; $HandleAuth['htmlbatch'] = 'admin'; $HandleActions['htmlbatch'] = 'HandleExportHTML'; # conditional markup (:if nohtml:) $NoHTMLExport = true; //is set to false when exporting to HTML $Conditions['nohtml'] = '(boolean)@$GLOBALS["NoHTMLExport"]'; ## function called as part of $EditFunctions during page update if ($SaveHTML['update']==true && $group!='Site' && $group!='SiteAdmin') { $EditFunctions[] = 'ExportHTMLUpdate'; $EditRedirectFmt = '{$FullName}?action=html'; } function ExportHTMLUpdate($pagename, &$page, &$new) { global $IsPagePosted, $EditRedirectFmt; if (!$IsPagePosted) return; if ($action=='edit') $_REQUEST['action'] = 'html'; HandleExportHTML($pagename, 'edit'); } //}}} ## pagelink markup {[pagelink wikilabel htmllabel [edit|login] ]} Markup_e('exporthtmllink','directives','/\\{\\[pagelink\\s*(.*?)\\s*\\]\\}/', "ExportHTMLPageLink(\$pagename, \$m[1])"); function ExportHTMLPageLink($pagename, $args=NULL) { global $SaveHTML, $NoHTMLExport; $args = ParseArgs($args); $name = PageVar($pagename,'$Name'); $group = PageVar($pagename,'$Group'); if ($NoHTMLExport==1) { //link for wiki page $label = ($args[''][1]) ? $args[''][1] : $SaveHTML["htmllabel"]; $tooltip = $SaveHTML["htmltooltip"]; $url = $SaveHTML["htmldir"]."$group/$name".$SaveHTML["suffix"]; } else { //link for HTML page $label = ($args[''][0]) ? $args[''][0] : $SaveHTML["wikilabel"]; $tooltip = $SaveHTML["wikitooltip"]; $root = preg_replace('!\w+\/!','../',$SaveHTML["htmldir"]); $url = $root.$SaveHTML["wikidir"].$SaveHTML["scriptname"]."?n=$group/$name"; switch ($args[''][2]) { case 'login': $url .= "&action=login"; break; case 'edit': $url .= "&action=edit"; break; } } return Keep(''.$label.''); } //}}} ## main function to export HTML page, called with action=html or action=htmlbatch function HandleExportHTML($pagename, $auth) { global $action, $SaveHTML, $NoHTMLExport, $action, $ScriptUrl, $FmtV, $PageStartFmt, $PageEndFmt, $HTMLHeaderFmt, $MetaRobots, $MakeBatchPageListFunction, $Lang, $MLVList, $FmtPV, $EnableLangFolders; $NoHTMLExport = false; //iterating batch process for multi language pages or action=htmlbatch if (($Lang && $EnableLangFolders==1) OR ($action=='htmlbatch' && $SaveHTML['batch']==true)) { $next = ExportHTMLBatch($pagename); if ($next=='next') return; } if (preg_match('/^(.+)[.\\/]([^.\\/]+)$/', $pagename, $m)) { $group = $m[1]; $name = $m[2]; } if (!$SaveHTML['htmldir'] || !$group || !$name || !$SaveHTML['suffix']) Redirect($pagename); $fname = FmtPageName("{$name}{$SaveHTML['suffix']}", $pagename); $filename = "{$SaveHTML['htmldir']}{$group}/{$name}{$SaveHTML['suffix']}"; //hide page sections with action links etc if (!is_array($SaveHTML['hidden'])) $SaveHTML['hidden'] = preg_split("/[\\s,|;]+/", $SaveHTML['hidden'], -1, PREG_SPLIT_NO_EMPTY); foreach ($SaveHTML['hidden'] as $sect) SetTmplDisplay($sect,0); $HTMLHeaderFmt['popupedit'] = ""; //suppress special popupedit styles $HTMLHeaderFmt['fox'] = ""; //supress special 'fox' styles $MetaRobots = 'index,follow'; //add 'index, follow' for robots metatag $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT); if (!$page) Abort("?cannot read $pagename"); if (PageExists($pagename)) $text = @$page['text']; $text = '(:groupheader:)'.@$text.'(:groupfooter:)'; //check for redirect markup if (preg_match('/\\(:redirect\\s+(\\S.*?):\\)/i',$text,$m)) { $redirname = MakePageName($pagename,$m[1]); $redirurl = $ScriptUrl."?n=".$redirname; $HandleBrowseFmt = "