📄 moodle_wikidump.php
字号:
<?php // $Id: moodle_wikidump.php,v 1.12.4.2 2008/02/19 11:04:48 skodak Exp $# ToDo: Binary Content# Binary Linking/* Allows to download a tarball including all WikiPages and images that currently are in the database.*/#-- text$ewiki_t["en"]["WIKIEXPORTCOMMENT"] = "Here you can tailor your WikiDump to your needs. When you are ready, click the \"Download\" button.";$ewiki_t["en"]["DOWNLOAD_ARCHIVE"] = "Download";#define("EWIKI_WIKIDUMP_ARCNAME", "WikiDump_");#define("EWIKI_WIKIDUMP_DEFAULTTYPE", "TAR");#define("EWIKI_WIKIDUMP_MAXLEVEL", 1);define('EWIKI_DUMP_FILENAME_REGEX',"/\W\+/");#-- glue#if((function_exists(gzcompress) && EWIKI_WIKIDUMP_DEFAULTTYPE=="ZIP") || EWIKI_WIKIDUMP_DEFAULTTYPE=="TAR"){ $ewiki_plugins["page"]["WikiExport"] = "moodle_ewiki_page_wiki_dump"; #$ewiki_plugins["action"]['wikidump'] = "moodle_ewiki_page_wiki_dump";#}$ewiki_t["c"]["EWIKIDUMPCSS"] = ' <style TYPE="text/css"> <!-- body { background-color:#eeeeff; padding:2px; } H2 { background:#000000; color:#ffffff; border:1px solid #000000; } --> </style> '; function moodle_ewiki_page_wiki_dump($id=0, $data=0, $action=0) { global $userid, $groupid, $cm, $wikipage, $wiki, $course, $CFG; #-- return legacy page $cont = true; if (!empty($_REQUEST["wikiexport"])) { $binaries=$_REQUEST["exportbinaries"]; if(!$wiki->ewikiacceptbinary) { $binaries=0; } $exportformats=$_REQUEST["exportformats"]; if($wiki->htmlmode==2) { $exportformats=1; } $cont=ewiki_page_wiki_dump_send($binaries, $exportformats, $_REQUEST["withvirtualpages"], $_REQUEST["exportdestinations"]); } if($cont===false) { die; } $url = ewiki_script("", "WikiExport"); $ret = ewiki_make_title($id, $id, 2); $ret .= ($cont&&$cont!==true)?$cont."<br /><br />\n":""; $ret .= get_string("wikiexportcomment","wiki"); // removing name="form" from the following form as it does not validate // and is not referenced. MDL-7861 $ret .= "<br /><br />\n". '<FORM method="post" action="view.php">'."\n". "<div class=\"wikiexportbox\">\n". '<INPUT type="hidden" name="page" value="WikiExport" />'."\n". '<INPUT type="hidden" name="userid" value="'.$userid.'" />'."\n". '<INPUT type="hidden" name="groupid" value="'.$groupid.'" />'."\n". '<INPUT type="hidden" name="id" value="'.$cm->id.'" />'."\n". '<INPUT type="hidden" name="wikipage" value="'.$wikipage.'" />'."\n"; // Export binaries too ? if(!$wiki->ewikiacceptbinary) { $ret.='<INPUT type="hidden" name="exportbinaries" value="0" />'.$exportdestinations[0]."\n"; } else { $ret.='<INPUT type="hidden" name="exportbinaries" value="0" />'."\n"; } $ret.="<TABLE cellpadding=\"5\">\n"; if($wiki->ewikiacceptbinary) { $ret.=" <TR valign=\"top\">\n". ' <TD align="right">'.get_string("withbinaries","wiki").":</TD>\n". " <TD>\n". ' <input type="checkbox" name="exportbinaries" value="1"'.($_REQUEST["exportbinaries"]==1?" checked":"")." />\n". " </TD>\n". " </TR>\n"; } $ret.=" <TR valign=\"top\">\n". ' <TD align="right">'.get_string("withvirtualpages","wiki").":</TD>\n". " <TD>\n". ' <input type="checkbox" name="withvirtualpages" value="1"'.($_REQUEST["withvirtualpages"]==1?" checked":"")." />\n". " </TD>\n". " </TR>\n"; $exportformats=array( "0" => get_string("plaintext","wiki") , "1" => get_string("html","wiki")); /// Formats $ret.=" <TR valign=\"top\">\n". ' <TD align="right">'.get_string("exportformats","wiki").":</TD>\n". " <TD>\n"; if($wiki->htmlmode!=2) { $ret.= choose_from_menu($exportformats, "exportformats", $_REQUEST["exportformats"], "", "", "", true)."\n"; } else { $ret.= '<INPUT type="hidden" name="exportformats" value="1" />'. get_string("html","wiki"); } $ret.=" </TD>\n". " </TR>\n"; /// Destination $exportdestinations=array("0" => get_string("downloadaszip","wiki")); if(wiki_is_teacher($wiki)) { // Get Directory List $rawdirs = get_directory_list("$CFG->dataroot/$course->id", 'moddata', true, true, false); foreach ($rawdirs as $rawdir) { $exportdestinations[$rawdir] = get_string("moduledirectory","wiki").": ".$rawdir; } } $ret.=" <TR valign=\"top\">\n". ' <TD align="right">'.get_string("exportto","wiki").":</TD>\n". " <TD>\n"; if(count($exportdestinations)==1) { $ret.='<INPUT type="hidden" name="exportdestinations" value="0" />'.$exportdestinations[0]."\n"; } else { $ret.=choose_from_menu($exportdestinations, "exportdestinations", $_REQUEST["exportdestinations"], "", "", "", true)."\n"; } $ret.=" </TD>\n". " </TR>\n". "</TABLE>\n". ' <input type="submit" name="wikiexport" value= "'.get_string("export","wiki").'" />'."\n". "</div>\n"; "</FORM>\n"; return $ret;}function ewiki_page_wiki_dump_send($exportbinaries=0, $exportformats=0, $withvirtualpages=0, $exportdestinations=0) { global $ewiki_config, $wiki, $ewiki_plugins, $wiki_entry, $course, $CFG, $ewiki_t, $userid, $groupid; $filestozip=array(); #-- disable protected email if (is_array($ewiki_plugins["link_url"])) { foreach($ewiki_plugins["link_url"] as $key => $linkplugin){ if($linkplugin == "ewiki_email_protect_link"){ unset($ewiki_plugins["link_url"][$key]); } } } /// HTML-Export if($exportformats==1) { #-- if exportformats is html $HTML_TEMPLATE = '<html> <head>'.$ewiki_t["c"]["EWIKIDUMPCSS"].' <title>$title</title> </head> <body bgcolor="#ffffff";> <div id="PageText"> <h2>$title</h2> $content </div> </body> </html>'; #-- reconfigure ewiki_format() to generate offline pages and files $html_ext = ".html"; $ewiki_config["script"] = "%s$html_ext"; $ewiki_config["script_binary"] = "%s"; } // Export Virtual pages special $a_virtual = array_keys($ewiki_plugins["page"]); #-- get all pages / binary files $a_validpages = ewiki_valid_pages(1, $withvirtualpages); $a_pagelist = ewiki_sitemap_create($wiki_entry->pagename, $a_validpages, 100, 1); # Add linked binary files to pagelist foreach($a_pagelist as $key => $value) { if(is_array($a_validpages[$value]["refs"])){ foreach($a_validpages[$value]["refs"] as $refs){ if($a_validpages[$refs]["type"]=="image" || $a_validpages[$refs]["type"]=="file"){ $a_pagelist[]=$refs; } } } } # Adjust links to binary files foreach($a_pagelist as $key => $value){ if($a_validpages[$value]["type"]=="image"){ $a_images[]=urlencode($value); $a_rimages[]=urlencode(preg_replace(EWIKI_DUMP_FILENAME_REGEX, "", $value)); unset($a_validpages[$value]); } if($a_validpages[$value]["type"]=="file") { $a_images[]=urlencode($value); $a_rimages[]=clean_filename(substr($value,strlen(EWIKI_IDF_INTERNAL))); $a_images[]=$value; $a_rimages[]=clean_filename(substr($value,strlen(EWIKI_IDF_INTERNAL))); unset($a_validpages[$value]); } } # Remove binaries from a_validpages and add to a_pagelist foreach($a_validpages as $key => $value){ if($a_validpages[$key]["type"]=="image" || $a_validpages[$key]["type"]=="file"){ $a_pagelist[]=$key; unset($a_validpages[$key]); } } #print "<pre>"; print_r($a_validpages); print "</pre>"; #print "<hr /><pre>"; print_r($a_pagelist); print "</pre>"; $a_sitemap = ewiki_sitemap_create($wiki_entry->pagename, $a_validpages, 99, 0); if ($a_pagelist) { #-- create new zip file #if($arctype == "ZIP"){ # $archivename=EWIKI_WIKIDUMP_ARCNAME."$rootid.zip"; # $archive = new ewiki_virtual_zip();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -