mirror of
https://github.com/moodle/moodle.git
synced 2025-04-23 09:23:09 +02:00
Replaced some needed plugins.
This commit is contained in:
parent
f41e824f33
commit
1d20c825c0
mod/wiki/ewiki/plugins
action
aview
feature
markup
page
65
mod/wiki/ewiki/plugins/action/diff.php
Executable file
65
mod/wiki/ewiki/plugins/action/diff.php
Executable file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
# this is the "stupid diff", which shows up changes between two
|
||||
# saved versions of a WikiPage; even if working very unclean it
|
||||
# allows to see what has changed
|
||||
# it is accessible through the "info about page" action
|
||||
|
||||
|
||||
|
||||
$ewiki_plugins["action"]["diff"] = "ewiki_page_stupid_diff";
|
||||
$ewiki_config["action_links"]["info"]["diff"] = "diff";
|
||||
|
||||
|
||||
|
||||
function ewiki_page_stupid_diff($id, $data, $action) {
|
||||
|
||||
|
||||
if ($uu=$GLOBALS["ewiki_diff_versions"]) {
|
||||
list($new_ver, $old_ver) = $uu;
|
||||
$data = ewiki_database("GET", array("id" => $id, "version" => $new_ver));
|
||||
}
|
||||
else {
|
||||
$new_ver = $data["version"];
|
||||
$old_ver = $new_ver - 1;
|
||||
}
|
||||
if ($old_ver > 0) {
|
||||
$data0 = ewiki_database("GET", array("id" => $id, "version" => $old_ver));
|
||||
}
|
||||
|
||||
$o = ewiki_make_title($id, "Differences between version $new_ver and $old_ver of »{$id}«");
|
||||
|
||||
$txt0 = preg_split("/\s*\n/", trim($data0["content"]));
|
||||
$txt2 = preg_split("/\s*\n/", trim($data["content"]));
|
||||
|
||||
$diff0 = array_diff($txt0, $txt2);
|
||||
$diff2 = array_diff($txt2, $txt0);
|
||||
|
||||
foreach ($txt2 as $i => $line) {
|
||||
|
||||
$line = htmlentities($line);
|
||||
|
||||
$i2 = $i;
|
||||
while ($rm = $diff0[$i2++]) {
|
||||
$o .= "<b>-</b><font color=\"#990000\"> <tt>$rm</tt></font><br>\n";
|
||||
unset($diff0[$i2-1]);
|
||||
}
|
||||
|
||||
if (in_array($line, $diff2)) {
|
||||
$o .= "<b>+</b><font color=\"#009900\"> <tt>$line</tt></font><br>\n";
|
||||
}
|
||||
else {
|
||||
$o .= " $line<br>\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach ($diff0 as $rm) {
|
||||
$o .= "<b>-</b><font color=\"#990000\"> <tt>$rm</tt></font><br>\n";
|
||||
}
|
||||
|
||||
return($o);
|
||||
}
|
||||
|
||||
|
||||
?>
|
24
mod/wiki/ewiki/plugins/aview/backlinks.php
Executable file
24
mod/wiki/ewiki/plugins/aview/backlinks.php
Executable file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
#
|
||||
# this plugin prints the "pages linking to" below a page (the same
|
||||
# information the "links/" action does)
|
||||
#
|
||||
# altered to use ewiki_get_backlinks() by AndyFundinger.
|
||||
|
||||
$ewiki_plugins["view_append"][] = "ewiki_view_append_backlinks";
|
||||
|
||||
function ewiki_view_append_backlinks($id, $data, $action) {
|
||||
$pages = ewiki_get_backlinks($id);
|
||||
|
||||
$o="";
|
||||
foreach ($pages as $id) {
|
||||
$o .= ' <a href="'.ewiki_script("",$id).'">'.$id.'</a>';
|
||||
}
|
||||
($o) && ($o = "<div class=\"wiki_backlinks\"><small>Backlinks:</small><br>$o</div>\n");
|
||||
|
||||
return($o);
|
||||
}
|
||||
|
||||
|
||||
?>
|
122
mod/wiki/ewiki/plugins/feature/imgresize_gd.php
Executable file
122
mod/wiki/ewiki/plugins/feature/imgresize_gd.php
Executable file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
# if someone uploads an image, which is larger than the allowed
|
||||
# image size (EWIKI_IMAGE_MAXSIZE), then this plugin tries to
|
||||
# rescale that image until it fits; it utilizes the PHP libgd
|
||||
# functions to accomplish this
|
||||
|
||||
# NOTE: It is currently disabled for Win32, because nobody knows, if
|
||||
# this will crash the PHP interpreter on those systems.
|
||||
|
||||
|
||||
define("EWIKI_IMGRESIZE_WIN", 0);
|
||||
|
||||
|
||||
if (!strstr(PHP_VERSION, "-dev") && !function_exists("imagecreate") && function_exists("dl")) { #-- try to load gd lib
|
||||
@dl("php_gd2.dll") or @dl("gd.so");
|
||||
}
|
||||
if (function_exists("imagecreate")) {
|
||||
$ewiki_plugins["image_resize"][] = "ewiki_binary_resize_image_gd";
|
||||
}
|
||||
|
||||
|
||||
function ewiki_binary_resize_image_gd(&$filename, &$mime, $return=0) {
|
||||
|
||||
/*** this disallows Win32 ***/
|
||||
if ( (DIRECTORY_SEPARATOR!="/") && !EWIKI_IMAGERESIZE_WIN
|
||||
|| (strpos($mime, "image/")!==0) )
|
||||
{
|
||||
return(false);
|
||||
}
|
||||
|
||||
$tmp_rescale = $filename;
|
||||
|
||||
#-- initial rescale
|
||||
$r = EWIKI_IMAGE_MAXSIZE / filesize($tmp_rescale);
|
||||
$r = ($r) + ($r - 1) * ($r - 1);
|
||||
|
||||
#-- read orig image
|
||||
strtok($mime, "/");
|
||||
$type = strtok("/");
|
||||
if (function_exists($pf = "imagecreatefrom$type")) {
|
||||
$orig_image = $pf($filename);
|
||||
}
|
||||
else {
|
||||
return(false);
|
||||
}
|
||||
$orig_x = imagesx($orig_image);
|
||||
$orig_y = imagesy($orig_image);
|
||||
|
||||
#-- change mime from .gif to .png
|
||||
if (($type == "gif") && (false || function_exists("imagepng") && !function_exists("imagegif"))) {
|
||||
$type = "png";
|
||||
}
|
||||
|
||||
#-- retry resizing
|
||||
$loop = 20;
|
||||
while (($loop--) && (filesize($tmp_rescale) > EWIKI_IMAGE_MAXSIZE)) {
|
||||
|
||||
if ($filename == $tmp_rescale) {
|
||||
$tmp_rescale = tempnam(EWIKI_TMP, "ewiki.img_resize_gd.tmp.");
|
||||
}
|
||||
|
||||
#-- sizes
|
||||
$new_x = (int) ($orig_x * $r);
|
||||
$new_y = (int) ($orig_y * $r);
|
||||
|
||||
#-- new gd image
|
||||
$tc = function_exists("imageistruecolor") && imageistruecolor($orig_image);
|
||||
if (!$tc || ($type == "gif")) {
|
||||
$new_image = imagecreate($new_x, $new_y);
|
||||
imagepalettecopy($new_image, $orig_image);
|
||||
}
|
||||
else {
|
||||
$new_image = imagecreatetruecolor($new_x, $new_y);
|
||||
}
|
||||
|
||||
#-- resize action
|
||||
imagecopyresized($new_image, $orig_image, 0,0, 0,0, $new_x,$new_y, $orig_x,$orig_y);
|
||||
|
||||
#-- special things
|
||||
if ( ($type == "png") && function_exists("imagesavealpha") ) {
|
||||
imagesavealpha($new_image, 1);
|
||||
}
|
||||
|
||||
#-- save
|
||||
if (function_exists($pf = "image$type")) {
|
||||
$pf($new_image, $tmp_rescale);
|
||||
}
|
||||
else {
|
||||
return(false); # cannot save in orig format (.gif)
|
||||
}
|
||||
|
||||
#-- prepare next run
|
||||
imagedestroy($new_image);
|
||||
clearstatcache();
|
||||
$r *= 0.95;
|
||||
}
|
||||
|
||||
#-- stop
|
||||
imagedestroy($orig_image);
|
||||
|
||||
#-- security check filesizes, abort
|
||||
if (!filesize($filename) || !filesize($tmp_rescale) || (filesize($tmp_rescale) > EWIKI_IMAGE_MAXSIZE)) {
|
||||
unlink($tmp_rescale);
|
||||
return($false);
|
||||
}
|
||||
|
||||
#-- set $mime, as it may have changed (.gif)
|
||||
$mime = strtok($mime, "/") . "/" . $type;
|
||||
if (!strstr($filename, ".$type")) {
|
||||
unlink($filename);
|
||||
$filename .= ".$type";
|
||||
}
|
||||
|
||||
#-- move tmp file to old name
|
||||
copy($tmp_rescale, $filename);
|
||||
unlink($tmp_rescale);
|
||||
return(true);
|
||||
|
||||
}
|
||||
|
||||
?>
|
61
mod/wiki/ewiki/plugins/markup/footnotes.php
Executable file
61
mod/wiki/ewiki/plugins/markup/footnotes.php
Executable file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
|
||||
this plugin introduces markup for footnotes, use it like:
|
||||
|
||||
...
|
||||
some very scientific sentence {{this is a footnote explaination}}
|
||||
...
|
||||
|
||||
this may be useful in some rare cases; usually one should create
|
||||
a WikiLink to explain a more complex task on another page;
|
||||
your decision
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$ewiki_plugins["format_source"][] = "ewiki_format_source_footnotes";
|
||||
|
||||
|
||||
|
||||
function ewiki_format_source_footnotes (&$source) {
|
||||
|
||||
$notenum = 0;
|
||||
|
||||
$l = 0;
|
||||
while (
|
||||
($l = strpos($source, "{{", $l))
|
||||
&& ($r = strpos($source, "}}", $l))
|
||||
)
|
||||
{
|
||||
$l += 2;
|
||||
|
||||
#-- skip "{{...\n...}}"
|
||||
if (strpos($source, "\n", $l) < $r) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$notenum++;
|
||||
|
||||
#-- extract "footnote"
|
||||
$footnote = substr($source, $l, $r - $l);
|
||||
|
||||
#-- strip "{{footnote}}"
|
||||
$source = substr($source, 0, $l - 2)
|
||||
. "<a href=\"#fn$notenum\">·$notenum</a>"
|
||||
. substr($source, $r + 2);
|
||||
|
||||
#-- add "footnote" to the end of the wiki page source
|
||||
if ($notenum==1) {
|
||||
$source .= "\n----";
|
||||
}
|
||||
$source .= "\n" .
|
||||
"<a name=\"fn$notenum\">·$notenum</a> ". $footnote . "\n<br>";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
62
mod/wiki/ewiki/plugins/page/orphanedpages.php
Executable file
62
mod/wiki/ewiki/plugins/page/orphanedpages.php
Executable file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
# lists all pages, which are not referenced from others
|
||||
# (works rather unclean and dumb)
|
||||
|
||||
|
||||
define("EWIKI_PAGE_ORPHANEDPAGES", "OrphanedPages");
|
||||
$ewiki_plugins["page"][EWIKI_PAGE_ORPHANEDPAGES] = "ewiki_page_orphanedpages";
|
||||
|
||||
|
||||
function ewiki_page_orphanedpages($id, $data, $action) {
|
||||
|
||||
global $ewiki_links;
|
||||
|
||||
$o = ewiki_make_title($id, $id, 2);
|
||||
|
||||
$pages = array();
|
||||
$refs = array();
|
||||
$orphaned = array();
|
||||
|
||||
#-- read database
|
||||
$db = ewiki_database("GETALL", array("refs", "flags"));
|
||||
$n=0;
|
||||
while ($row = $db->get()) {
|
||||
|
||||
$p = $row["id"];
|
||||
|
||||
#-- remove self-reference
|
||||
$row["refs"] = str_replace("\n$p\n", "\n", $row["refs"]);
|
||||
|
||||
#-- add to list of referenced pages
|
||||
$rf = explode("\n", trim($row["refs"]));
|
||||
$refs = array_merge($refs, $rf);
|
||||
if ($n++ > 299) {
|
||||
$refs = array_unique($refs);
|
||||
$n=0;
|
||||
} // (clean-up only every 300th loop)
|
||||
|
||||
#-- add page name
|
||||
if (($row["flags"] & EWIKI_DB_F_TYPE) == EWIKI_DB_F_TEXT) {
|
||||
$pages[] = $row["id"];
|
||||
}
|
||||
}
|
||||
$refs = array_unique($refs);
|
||||
|
||||
#-- check pages to be referenced from somewhere
|
||||
foreach ($pages as $p) {
|
||||
if (!ewiki_in_array($p, $refs)) {
|
||||
if (!EWIKI_PROTECTED_MODE || EWIKI_PROTECTED_MODE_HIDING || ewiki_auth($p, $uu, "view")) {
|
||||
$orphaned[] = $p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#-- output
|
||||
$o .= ewiki_list_pages($orphaned, 0);
|
||||
|
||||
return($o);
|
||||
}
|
||||
|
||||
|
||||
?>
|
44
mod/wiki/ewiki/plugins/page/pageindex.php
Executable file
44
mod/wiki/ewiki/plugins/page/pageindex.php
Executable file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
# this plugins provides the internal page "PageIndex", which lists all
|
||||
# pages alphabetically
|
||||
|
||||
|
||||
define("EWIKI_PAGE_PAGEINDEX", "PageIndex");
|
||||
$ewiki_plugins["page"][EWIKI_PAGE_PAGEINDEX] = "ewiki_page_index";
|
||||
|
||||
|
||||
function ewiki_page_index($id=0, $data=0, $action=0, $args=array()) {
|
||||
|
||||
global $ewiki_plugins;
|
||||
|
||||
$o = ewiki_make_title($id, $id, 2);
|
||||
|
||||
$sorted = array();
|
||||
$sorted = array_merge($sorted, array_keys($ewiki_plugins["page"]));
|
||||
|
||||
$exclude = "\n" . implode("\n",
|
||||
preg_split("/\s*[,;:\|]\s*/", $args["exclude"])) .
|
||||
"\n";
|
||||
|
||||
$result = ewiki_database("GETALL", array("flags"));
|
||||
while ($row = $result->get()) {
|
||||
if (EWIKI_PROTECTED_MODE && EWIKI_PROTECTED_MODE_HIDING && !ewiki_auth($row["id"], $uu, "view")) {
|
||||
continue;
|
||||
}
|
||||
if (($row["flags"] & EWIKI_DB_F_TYPE) == EWIKI_DB_F_TEXT) {
|
||||
if (!stristr($exclude, "\n".$row["id"]."\n")) {
|
||||
$sorted[] = $row["id"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
natcasesort($sorted);
|
||||
|
||||
$o .= ewiki_list_pages($sorted, 0, 0, $ewiki_plugins["list_dict"][0]);
|
||||
|
||||
return($o);
|
||||
}
|
||||
|
||||
|
||||
?>
|
Loading…
x
Reference in New Issue
Block a user