From 1d20c825c0078a7753c01d7c0641a6c0190e34c6 Mon Sep 17 00:00:00 2001 From: mchurch Date: Wed, 2 Jun 2004 18:17:30 +0000 Subject: [PATCH] Replaced some needed plugins. --- mod/wiki/ewiki/plugins/action/diff.php | 65 ++++++++++ mod/wiki/ewiki/plugins/aview/backlinks.php | 24 ++++ .../ewiki/plugins/feature/imgresize_gd.php | 122 ++++++++++++++++++ mod/wiki/ewiki/plugins/markup/footnotes.php | 61 +++++++++ mod/wiki/ewiki/plugins/page/orphanedpages.php | 62 +++++++++ mod/wiki/ewiki/plugins/page/pageindex.php | 44 +++++++ 6 files changed, 378 insertions(+) create mode 100755 mod/wiki/ewiki/plugins/action/diff.php create mode 100755 mod/wiki/ewiki/plugins/aview/backlinks.php create mode 100755 mod/wiki/ewiki/plugins/feature/imgresize_gd.php create mode 100755 mod/wiki/ewiki/plugins/markup/footnotes.php create mode 100755 mod/wiki/ewiki/plugins/page/orphanedpages.php create mode 100755 mod/wiki/ewiki/plugins/page/pageindex.php diff --git a/mod/wiki/ewiki/plugins/action/diff.php b/mod/wiki/ewiki/plugins/action/diff.php new file mode 100755 index 0000000000000..bcf3a46148cd9 --- /dev/null +++ b/mod/wiki/ewiki/plugins/action/diff.php @@ -0,0 +1,65 @@ + $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 .= "- $rm
\n"; + unset($diff0[$i2-1]); + } + + if (in_array($line, $diff2)) { + $o .= "+ $line
\n"; + } + else { + $o .= "  $line
\n"; + } + + } + + foreach ($diff0 as $rm) { + $o .= "- $rm
\n"; + } + + return($o); + } + + +?> \ No newline at end of file diff --git a/mod/wiki/ewiki/plugins/aview/backlinks.php b/mod/wiki/ewiki/plugins/aview/backlinks.php new file mode 100755 index 0000000000000..fd616af6582df --- /dev/null +++ b/mod/wiki/ewiki/plugins/aview/backlinks.php @@ -0,0 +1,24 @@ +'.$id.''; + } + ($o) && ($o = "
Backlinks:
$o
\n"); + + return($o); +} + + +?> \ No newline at end of file diff --git a/mod/wiki/ewiki/plugins/feature/imgresize_gd.php b/mod/wiki/ewiki/plugins/feature/imgresize_gd.php new file mode 100755 index 0000000000000..e88c998306cb4 --- /dev/null +++ b/mod/wiki/ewiki/plugins/feature/imgresize_gd.php @@ -0,0 +1,122 @@ + 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); + +} + +?> \ No newline at end of file diff --git a/mod/wiki/ewiki/plugins/markup/footnotes.php b/mod/wiki/ewiki/plugins/markup/footnotes.php new file mode 100755 index 0000000000000..6f9021d8937b2 --- /dev/null +++ b/mod/wiki/ewiki/plugins/markup/footnotes.php @@ -0,0 +1,61 @@ +·$notenum" + . substr($source, $r + 2); + + #-- add "footnote" to the end of the wiki page source + if ($notenum==1) { + $source .= "\n----"; + } + $source .= "\n" . + "·$notenum ". $footnote . "\n
"; + + } +} + + +?> \ No newline at end of file diff --git a/mod/wiki/ewiki/plugins/page/orphanedpages.php b/mod/wiki/ewiki/plugins/page/orphanedpages.php new file mode 100755 index 0000000000000..17b1979a230ed --- /dev/null +++ b/mod/wiki/ewiki/plugins/page/orphanedpages.php @@ -0,0 +1,62 @@ +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); +} + + +?> \ No newline at end of file diff --git a/mod/wiki/ewiki/plugins/page/pageindex.php b/mod/wiki/ewiki/plugins/page/pageindex.php new file mode 100755 index 0000000000000..87039a5b1bf54 --- /dev/null +++ b/mod/wiki/ewiki/plugins/page/pageindex.php @@ -0,0 +1,44 @@ +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); +} + + +?> \ No newline at end of file