MDL-22102 removing problematic readme files which were breaking my git checkout in...
authorPetr Skoda <skodak@moodle.org>
Fri, 16 Apr 2010 08:31:02 +0000 (08:31 +0000)
committerPetr Skoda <skodak@moodle.org>
Fri, 16 Apr 2010 08:31:02 +0000 (08:31 +0000)
mod/wiki/ewiki/README [deleted file]
mod/wiki/ewiki/README.de [deleted file]

diff --git a/mod/wiki/ewiki/README b/mod/wiki/ewiki/README
deleted file mode 100644 (file)
index 7b6f5f1..0000000
+++ /dev/null
@@ -1,4862 +0,0 @@
-
-ErfurtWiki - a fast, user-friendly, highly configurable Wiki engine in PHP
-==========================================================================
-
-
-README
-������
-This is the documentation for ewiki. I tries to describe nearly everything,
-but therefore has now grown to long to be read at once. However it is often
-sufficient to just read the first few paragraphs to set it up (plugins can be
-activated at any later time). If you have the Wiki running, then you can also
-read this file in hypertext format.
-
-
-        1  What is this?
-      1.1  Why "ErfurtWiki"?
-      1.2  WikiAlternatives
-      1.3  Authors
-      1.4  Project pages
-      1.5  Obtaining support
-      1.6  License
-      1.7  Known Bugs
-
-        2  HowTo
-      2.1  Integration with yoursite.php
-    2.1.1  Creating a "config.php"
-    2.1.2  Generation of a "monsterwiki.php" script
-    2.1.3  What to do if images don't work
-      2.2  Supplying the WikiPageName
-    2.2.1  mod_rewrite or PATH_INFO
-    2.2.2  use with the 404 trick
-      2.3  Security considerations
-    2.3.1  PHP settings (register_globals)
-    2.3.2  _protected_mode
-      2.4  simple usage restrictions via wrappers
-      2.5  PhpWiki compatibility
-    2.5.1  Transition from another WikiWare
-      2.6  Idea Collection
-    2.6.1  Multiple Wikis / InterWiki feature abuse
-
-        3  Internals
-      3.1  the ewiki_ functions
-      3.2  $GLOBALS pollution
-      3.3  the EWIKI_ constants
-      3.4  $ewiki_config array
-      3.5  internal coding explained
-    3.5.1  how ewiki operates
-    3.5.2  used variables
-
-        4  Tweaking
-      4.1  Using the wiki source transformation only
-      4.2  Customizing ewiki_format()
-      4.3  Customization using CSS
-    4.3.1  user style classes in pages
-    4.3.2  rendered page content
-    4.3.3  pages enclosed in style classes
-    4.3.4  plugin output styling
-
-        5  Explanations
-      5.1  Binary and text support
-    5.1.1  Image uploading
-    5.1.2  Image caching
-    5.1.3  Image WikiMarkup
-    5.1.4  binary_store, direct access
-    5.1.5  Arbitrary binary content
-      5.2  $action and $id
-    5.2.1  ewiki URLs
-
-        6  Everything in one script
-      6.1  database plugins
-    6.1.1  MySQL support
-    6.1.2  plugins/db/flat_files         (IMPORTANT)
-    6.1.3  plugins/db/fast_files
-    6.1.4  plugins/db/any
-    6.1.5  plugins/db/adodb
-    6.1.6  plugins/db/dba
-    6.1.7  plugins/db/phpwiki13
-    6.1.8  plugins/db/binary_store
-      6.2  core enhancements
-    6.2.1  plugins/patchsaving
-    6.2.2  plugins/notify
-    6.2.3  plugins/jump
-    6.2.4  plugins/email_protect
-    6.2.5  plugins/spages (StaticPages)
-    6.2.6  plugins/pluginloader
-    6.2.7  plugins/init
-    6.2.8  plugins/feature/appendonly.php
-    6.2.9  plugins/feature/imgresize_gd.php
-    6.2.A  plugins/feature/imgresize_magick.php
-    6.2.B  plugins/feature/spellcheck.php
-      6.3  action/ plugins
-    6.3.1  plugins/action/diff.php
-    6.3.2  plugins/action/translation.php
-    6.3.3  plugins/action/like_pages.php
-    6.3.4  plugins/action/raw.php
-      6.4  plugins related to hypertext links
-    6.4.1  plugins/linking/tcn
-    6.4.2  plugins/linking/plural
-    6.4.3  plugins/linking/autolinking
-    6.4.4  plugins/linking/link_css
-    6.4.5  plugins/linking/link_icons
-    6.4.6  plugins/linking/link_target_blank
-    6.4.7  plugins/linking/linkexcerpts
-    6.4.8  plugins/linking/linkdatabase
-    6.4.9  plugins/linking/instanturls
-    6.4.A  plugins/linking/titlefix
-    6.4.B  plugins/interwiki/intermap
-      6.5  appearance/ tweaks
-    6.5.1  plugins/appearance/listpages_br
-    6.5.2  plugins/appearance/listpages_ul
-    6.5.3  plugins/appearance/listpages_tbl
-    6.5.4  plugins/appearance/fancy_list_dict
-    6.5.5  plugins/appearance/title_calendar.php
-      6.6  page/ plugins
-    6.6.1  plugins/page/powersearch
-    6.6.2  plugins/page/pageindex
-    6.6.3  plugins/page/wordindex
-    6.6.4  plugins/page/imagegallery
-    6.6.5  plugins/page/aboutplugins
-    6.6.6  plugins/page/orphanedpages
-    6.6.7  plugins/page/wantedpages
-    6.6.8  plugins/page/since_updates
-    6.6.9  plugins/page/textupload
-    6.6.A  plugins/page/wikidump
-    6.6.B  plugins/page/interwikimap
-    6.6.C  plugins/page/hitcounter
-    6.6.D  plugins/page/scandisk
-    6.6.E  plugins/page/wikinews
-    6.6.F  plugins/page/wikiuserlogin
-    6.6.G  plugins/page/randompage
-    6.6.H  plugins/page/fortune
-    6.6.J  plugins/page/ewikilog
-    6.6.J  plugins/page/phpinfo
-    6.6.K  plugins/page/README
-      6.7  markup/ plugins
-    6.7.1  Other WikiWares markup
-    6.7.2  plugins/markup/css
-    6.7.3  plugins/markup/css_singleat
-    6.7.4  plugins/markup/footnotes
-    6.7.5  plugins/markup/asciitbl
-    6.7.6  plugins/markup/complextbl
-    6.7.7  plugins/markup/htmltbl
-    6.7.8  plugins/markup/rescuehtml
-    6.7.9  plugins/markup/rendering_phpwiki12
-    6.7.A  plugins/markup/rendering_null
-      6.8  mpi
-    6.8.1  mpi_backlinks
-    6.8.2  mpi_multimedia
-    6.8.3  mpi_syndicate
-    6.8.4  mpi_insert
-    6.8.5  mpi_localsitemap
-      6.9  visual extensions
-    6.9.1  plugins/aview/backlinks
-    6.9.2  plugins/aview/linktree
-    6.9.3  plugins/aview/toc
-    6.9.4  plugins/aview/posts
-    6.9.5  plugins/aview/threads
-    6.9.6  plugins/aview/subpages
-    6.9.7  plugins/aview/downloads
-    6.9.8  plugins/aview/imgappend
-    6.9.9  plugins/aview/piclogocntrl
-    6.9.A  plugins/aview/aedit_pageimage
-    6.9.B  plugins/aview/control2
-    6.9.C  plugins/aview/aedit_authorname
-    6.9.D  plugins/aview/aedit_deletebutton.js
-      6.A  page filters
-    6.A.1  plugins/filter/f_fixhtml
-    6.A.2  plugins/filter/search_highlight
-    6.A.3  plugins/filter/fun_chef
-    6.A.4  plugins/filter/fun_upsidedown
-    6.A.5  plugins/filter/fun_wella
-    6.A.6  plugins/filter/fun_screamomatic
-    6.A.7  plugins/filter/f_msiepng
-      B.9  BloatWiki extensions
-    6.B.1  plugins/module/calendar
-    6.B.2  plugins/module/downloads
-    6.B.3  plugins/module/tour
-      6.C  utility code
-    6.C.1  plugins/lib/cache
-    6.C.2  plugins/lib/speed
-    6.C.3  plugins/lib/mime_magic
-    6.C.4  plugins/lib/navbar
-    6.C.5  plugins/lib/protmode
-    6.C.6  plugins/lib/save_storevars
-      6.D  admin/ plugins
-    6.D.1  control
-    6.D.2  SearchAndReplace
-    6.D.3  SearchCache
-      6.E  other plugins
-    6.E.1  plugins/debug/
-    6.E.2  plugins/auth/
-    6.E.3  plugins/auth-liveuser/
-      6.F  separate "extra" tarball
-
-        7  More separate files
-      7.1  Pages in init-pages/
-      7.2  Additional tools/             (IMPORTANT)
-    7.2.1  tools/t_flags
-    7.2.2  tools/t_backup
-    7.2.3  tools/t_restore
-    7.2.4  tools/t_remove
-    7.2.5  tools/t_holes
-    7.2.6  tools/t_textinsert
-    7.2.7  tools/t_transfer
-    7.2.8  tools/t_revert
-    7.2.9  tools/ewikictl
-    7.2.A  tools/wiki2html
-    7.2.B  tools/mkhuge
-    7.2.C  tools/mkpluginmap
-    7.2.D  tools/mkpageplugin
-      7.3  examples/
-    7.3.1  examples/homepage.php
-      7.4  Nice things in fragments/
-    7.4.1  strip_wonderful_slashes.php   (IMPORTANT)
-    7.4.2  strike_register_globals.php
-    7.4.3  404finder.php
-    7.4.4  htaccess
-    7.4.5  binary.php
-      7.5  fragments/funcs/*
-    7.5.1  fragments/funcs/wiki_format.inc
-    7.5.2  fragments/funcs/auth.php
-      7.6  fragments/css/*
-      7.7  fragments/blocks/*
-      7.8  fragments/patches/*
-      7.9  How to deal with tweaked code
-
-        8  Extension HowTo
-      8.1  the PlugInterface
-      8.2  plugin tasks
-    8.2.1  mpi plugins
-    8.2.2  authentication/permission plugins
-      8.3  writing your own plugin
-      8.4  format_* / rendering plugins
-    8.4.1  ewiki_format() internals
-    8.4.2  the format_ plugin hooks
-    8.4.3  $iii[] and $ooo[] block flags
-
-
-
-
-
-
-
-  -------------------------------------------------------------------- 1 --
-
-
-
-What is this?
-�������������
-This is a WikiWikiWeb engine implemented in the PHP web scripting
-language. A WikiWiki is a web site which can be edited by everybody
-who visits it (most commonly without requiring that user to register
-before).
-
-It should allow easy integration into an existing web site (portal
-or homepage / CMS-like software), as it is more a library and does
-not output a full .html page but instead just the formatted wiki
-text for inclusion in your pages` body/content area.
-
-
-
-Why "ErfurtWiki"?
-�����������������
-My home town (Btw, Erfurt is next to Weimar.de) and really that's
-just a name (you're allowed to rename, extend it and to finally
-ship it GPLifyed). You'll soon see the internal name is "ewiki",
-and it is also sometimes called 'EmbeddableWiki'.
-
-
-If you asked - Why you should I use it?
-
- - It is contained within a single file. It does not require 20 other
-   files to lie around between your own scripts.
-
- - It does not impose a pre-defined layout, and you do not need
-   to customize it either as it nicely integrates with your sites`
-   layout.
-
- - I think it's rather fast. It uses regexs too, but most of the
-   ewiki_format() uses the simple and quick string functions.
-
- - It got rather featureful, the final release seems near :)
-
-
-
-WikiAlternatives
-����������������
-If you don't like ewiki, then try at least one of these:
-
-* PhpWiki has a more complete approach than this WikiWare,
-  get it from http://freshmeat.net/projects/phpwiki,
-  it has support for different database types, features localization
-  and comes with an integrated admin area.
-
-* WakkaWiki by Hendrik Mans is also a very powerful PHP implementation,
-  see http://www.wakkawiki.com/
-
-* Miki is another nice (small) implementation in PHP from Jukka
-  Zitting.  Get it from http://miki.sourceforge.net/
-
-* Finally sfWiki - the sourceforge Wiki (therefore can be found on
-  http://sfwiki.sourceforge.net/). Some of its wiki syntax looks
-  a bit weird (other parts were inspiring), but it features complex
-  user authentication.
-
-* coWiki - completely OOP and the source code layout is great; looks
-  very featureful, but is more a CMS than a Wiki (authentication bloat)
-  and has also a little weird markup,
-  but better check it out yourself on http://cowiki.org/
-
-* And of course there are Wikis in other scripting languages (and yes,
-  there is still demand for an implementation in assembler or C !!)
-  http://www.freshmeat.net/search/?q=wiki&section=projects or just
-  have a look at http://www.google.com/search?q=wiki
-
-* However, the BEST PLACE to look for evil concurrent implementations is
-  http://c2.com/cgi/wiki?WikiEngines
-
-
-
-Authors
-�������
-current maintainer: Mario Salzer <mario*erphesfurt�de> icq95596825 (+Yah,Jab)
-main contributor: Andy Fundinger <andy*burgiss�com> from http://burgiss.com/
-
-For the complete list of authors and contributors please see the CREDITS
-file.
-
-This project is still in an early stage, to improve it further we need
-to know what doesn't work or what could be enhanced. Every mail is a
-contribution (yep, that is not measured in lines of source code).
-
-
-
-Project Pages
-�������������
-official freshmeat project page:
-- http://freshmeat.net/projects/ewiki
-
-demo site:
-- http://erfurtwiki.sourceforge.net/
-
-newest versions (unstable development releases):
-- http://erfurtwiki.sourceforge.net/downloads/
-
-mailing list archive
-- http://www.freelists.org/archives/ewiki/
-
-
-
-Obtaining Support
-�����������������
-Getting support for problems with ewiki is possible, but please read this
-README first. The author is thankful for BugReports, and of course would
-like to know were this documentation is not detailed enough and fails to
-explain things clearly.
-However, before you send requests to anyone, please visit following site
-(this is necessary to get FREE support):
-
-http://www.catb.org/~esr/faqs/smart-questions.html
-
-Then please feel free to contact the author or leave notes on the BugReports
-or UserSuggestion pages on our project site.
-Joining our http://erfurtwiki.sourceforge.net/?MailingList would allow you
-to reach a larger audience for your questions (and you can unsubscribe as
-soon as your problems are solved).
-
-
-
-License
-�������
-This "program" is "distributed" as "Public Domain". Public Domain
-is like "FreeWare", but a bit more free ;->  You can think of it
-as the GPL without being bound to the GPL. <note> I didn't want to
-include a LICENSE file larger than the program itself. </note>
-
-As this is a free (beer) piece of software, you cannot make me
-responsible for any BUGS or all the REALLY BAD HARD DISK DAMAGES ;-P
-it may lead to.
-
-Additional note: a few plugins contain GPL code, and therefore must be
-downloaded separately (mime_magic.php, rendering_phpwiki12.php).
-
-
-
-Known Bugs
-����������
-Currently none. But this note is just here to encourage you to visit
-http://erfurtwiki.sourceforge.net/?BugReports
-
-
-
-
-
-  -------------------------------------------------------------------- 2 --
-
-
-
-
-HowTo
-�����
-the ewiki script requires:
-
-- Webserver (Apache, Nanoweb, ...)
-- PHP 4.1 or later
-- a SQL database (works faster if you have one)
-- your existing web site layout
-- older PHP's wonderful magic slashes should really be disabled
-
-If you don't have the database, there is an add-on for flat-file
-usage (search this document for "db_flat_files" for notes on how to
-get this running).
-
-
-
-Integration with yoursite.php
-�����������������������������
-For the next few paragraphs the "yoursite.php" refers to whatever
-files and/or scripts belong to your already existing website. This
-hypothetical script should at least output the <html><body> tags
-around the output from ewiki. The most simple script to accomplish
-this could look like this (see also example-2.php):
-
-    <HTML>
-    <BODY>
-    <?php
-
-       mysql_connect("localhost", "DB-USER-NAME", "PASSWORD");     #[1]
-       mysql_query("use DATABASE-NAME-HERE");
-
-       define("EWIKI_SCRIPT", "yoursite.php?page=");               #[2]
-       error_reporting(0);                                         #[3]
-
-       include("ewiki.php");                                       #[4]
-
-       echo  ewiki_page();                                         #[5]
-
-    ?>
-    </BODY>
-    </HTML>
-
-[1]  The first two commands open a connection to your MySQL database,
-usually one saves the result of mysql_connect() in a variable named
-$db or so, but as PHP does not depend on it if there is only one
-single database connection, it is not used in "ewiki.php" at all.
-
-[2]  The define line tells ewiki about the hyperlinks it shall
-create.
-
-[3]  The error_reporting(0) is highly encouraged (but something similar
-is already built into the ewiki.php script).
-
-[4]  The include("ewiki.php") finally loads the ewiki "library" and sets
-any EWIKI_ constants that have not already been defined here.
-
-[5]  The final call to the ewiki_page() function returns the wiki page
-which was requested by the browser. You must prepend it with
-"echo" because the ewiki_page() function just returns a <html> enhanced
-string but does not output that one itself.
-
-
-
-        Creating a "config.php"
-        �����������������������
-        Instead of including the plain "ewiki.php" script as shown in the
-        example above, many people may find it more useful to include()
-        a more customized Wiki yoursite.
-
-        Customization of ewiki takes place, by pre-defining() some of the
-        EWIKI_ configuration settings and loading extension plugins. To
-        not move that work and code into yoursite it is recommended to
-        create some sort of "config.php" script, which then contained the
-        various define() and include() commands.
-        It is sometimes even senseful to establish the database connection
-        (if you use SQL and not the flat_files backend) inside of such a
-        config script, if there wasn't already established in yoursite.
-
-        So such a config.php script could contain:
-         - multiple define() commands, setting ewiki behaviour constants
-         - include() comands to load extension plugins
-         - evtl. some include() and define() for the db_flat_files plugin
-           (if you don't have a SQL database)
-         - and last but not least, the include("ewiki.php") script
-
-        If you then include() such a config.php, you get a fully functional
-        and preconfigured Wiki to include into yoursite. By using this
-        approach, you still could override some of the EWIKI_ settings with
-        additional define() constants right before the include("config.php").
-
-          <?php
-             include("includes/ewiki/myconfig.php");
-          ?>
-          <HTML>
-          <BODY>
-          <?php
-             echo  ewiki_page();
-          ?>
-          </BODY>
-          </HTML>
-
-        Note: Please don't get confused by the path names, you of course
-        needed to use a subdirectory specification like "ewiki/" before
-        every filename specified in these include() commands, if this was
-        the dir you put all the ewiki scripts.
-
-
-
-        Generation of a "monsterwiki.php" script
-        ����������������������������������������
-        ewiki over the time grow larger, and nowadays isn't anymore the
-        single script it once was. The distribution ships with over hundreds
-        of extension plugins. But nevertheless it is still possible to build
-        a single script from it all!
-
-        That being said, the "ewiki.php" script still implements a fully
-        functional Wiki (and just only lacks the advanced features supplied
-        the plugins). - You could still just include() the "ewiki.php"
-        script into yoursite and delete everything else the ewiki tarball
-        contained.
-
-        However, it is also possible to MERGE all wanted plugins and the
-        core script together to built a customized (feature enhanced) Wiki
-        script from it. All you needed to do was:
-
-          /unix/$   cat  ewiki.php plugins/*.*  >  monsterwiki.php
-          C:/dos/   type  ewiki.php plugins/*.*  >  monsterwiki.php
-
-        This way you'd get the "monsterwiki.php" file, which contained the
-        ewiki core script plug all plugins - but of course, you should only
-        copy the ones in, you really need and want (but not "*.*" all as
-        shown in the example above)!
-
-        The UNIX shell script "tools/mkhuge" will do exactly that for you;
-        it accepts a parameter from 0 to 3, which will merge a custom set
-        of useful plugins into the then generated "monsterwiki.php" script.
-
-        If you have built a "monsterwiki.php" script, you can include() this
-        instead of the minimal "ewiki.php" into yoursite to integrate a Wiki.
-
-        Eventually you'd also want to merge some configuration settings into
-        this monsterwiki script, so you wouldn't have to put the define(...)
-        commands into yoursite.php before you include("monsterwiki.php");
-        The define() commands however need to be the very first part merged
-        into that monsterwiki script, so it's best to edit the monsterscript
-        after generation and insert the appropriate settings then at the
-        very beginning.
-        You could also merge a (reduced!) "config.php" into the script,
-        using the above "cat" (or "type" for DOS/Win) method. But beware,
-        that this "config.php" then does not contain any include() command;
-        because else the resulting "monsterwiki.php" script would then try
-        to load the "ewiki.php" core script and plugins which were probably
-        already merged in. Even if you merge such a minimal config script
-        at the start of this monsterwiki script, you still could override
-        some settings (at least establishing the database connection) from
-        within yoursite, if you think it's useful.
-
-        Additional note: You could still include() plugins, if you included()
-        such a monsterwiki script into yoursite, provided that the plugin
-        you try to include() wasn't already merged into that monsterwiki.php
-        script before (else it would crash the PHP interpreter, because
-        loading it twice is once too much).
-
-        StaticPages (read about "spages" plugin) can also be included, if
-        you first convert them into ordinary ["page"] plugins using the
-        'mkpageplugin' commandline tool.
-
-
-
-        What to do if images don't work
-        �������������������������������
-        The first example, as well as the "example-2.php" have problems with
-        binary content, because: the <HTML> is output before the 'ewiki.php'
-        library was loaded and got the chance to output pictures.
-
-        So one should better rewrite the above example yoursite.php script to:
-
-            <?php
-               mysql_connect(":/var/run/mysqld/mysqld.sock", "USER", "PW");
-               mysql_query("use DBNAME");
-
-               define("EWIKI_SCRIPT", "yoursite.php?page=);
-               error_reporting(0);
-
-               include("ewiki.php");
-
-               $content = ewiki_page();
-            ?>
-            <HTML>
-            <HEAD>
-              <TITLE><?php  echo $ewiki_title;  ?>
-            </HEAD>
-            <BODY>
-            <?php
-               echo $content;
-            ?>
-            </BODY>
-            </HTML>
-
-        Please again, note the initial <?php part before the very first plain
-        HTML output - yoursite.php must really start with it, or else binary
-        content (uploaded images) won't work!
-
-        You could, of course write a "binary.php" besides "yoursite.php", to
-        get around this problem; please see fragments/ for an example.
-
-
-
-Supplying the WikiPageName
-��������������������������
-If you just call ewiki_page() as shown in the first example, it will
-try to get the name of the requested WikiPage either from the
-$_SERVER["PATH_INFO"] variable or from one of the GET-variables '?id='
-or '?name=' or '?page=' or '?file=' (available as $_REQUEST["name"]).
-If yoursite.php however uses another way or another varname to receive
-the WikiPageName you can just give it as first parameter:
-
-  ewiki_page( $id = "WikiPageName" );
-
-example-4.php shows how this can be used to list a second WikiPage
-(the list of newest pages) somewhere else on yoursite.php.
-
-
-
-        mod_rewrite or PATH_INFO
-        ������������������������
-        If you dedicate a complete directory for your wiki, you should keep
-        in mind, that some of the generated URLs contain slashes (for
-        example "edit/WikiPage"), and will look like subdirectories and thus
-        confuse browsers.
-
-        So you should either set EWIKI_SCRIPT to the absolute directory
-        containing your wiki wrapper script: define(EWIKI_SCRIPT,
-        "http://myserver/wiki/"); or else put a <BASE HREF="..."> into the
-        generated pages. Take this precaution because some of the generated
-        links contain additional slashes (like "edit/ThisPage") and thus may
-        make browsers believe in a changed subdirectory.
-
-        This applies to mod_rewrite usage and if you call your wiki wrapper
-        with the page name as PATH_INFO (like "/wiki/index.php/WikiPage").
-
-        Do not forget to enable EWIKI_USE_PATH_INFO, as it is per default
-        disabled for Apache servers! Also check, if EWIKI_URLENCODE and
-        _URLDECODE suit your needs, else you will find it useful to have URL
-        generation encapsulated in the ewiki_script() function.
-
-
-
-        use with the 404 trick
-        ����������������������
-        Once I implemented a way to run a web server below another one
-        (actually Nanoweb below Apache, for more details see
-        http://nanoweb.si.kz/), because the Apache on one of my providers
-        servers was heavily misconfigured - so I handed work over to a
-        secondary WebServer.
-
-        This trick also works without mod_rewrite support, and is therefore
-        also well suited for cheap WebSpace. Put following into the
-        .htaccess of the dedicated wiki directory:
-
-          #-- handle "not found" pages by ewiki
-          ErrorDocument 404 /wiki/index.php
-          DirectoryIndex 404 index.php
-
-        This will allow the "yoursite.php/ewiki.php" script to catch all
-        missed files, which would usually trigger a 404 error. Inside your
-        ewiki wrapper script, you must then however decode the originally
-        requested URL:
-
-          $url = $_SERVER["REQUEST_URL"];               # Apache often uses this one
-          $url = preg_replace("#^/wiki#", "", $url);    # strip wiki subdir name
-          $_SERVER["PATH_INFO"] = $url;                 # make ewiki see it
-
-        The second step is very important, it strips the name of the
-        dedicated subdirectory from the URL, which cannot be done inside
-        ewiki.php.
-
-           The $url from the above example could also be used as $id
-           parameter to ewiki_page().
-
-        It should be noted, that some Apache implementations are garbaging
-        POST requests in case of a triggered 404 error - but you can simply
-        test this by saving a changed WikiPage.
-
-        See also the "fragments/404finder.php" example on this.
-
-        Do not forget to enable EWIKI_USE_PATH_INFO, as it is per default
-        disabled for Apache servers!
-
-
-
-
-
-
-Security considerations
-�����������������������
-ewiki was developed using a PHP5 interpreter, but with limitations of PHP4.3
-in mind. There are huge differences (a rather instable, bug-prone and still
-unfinished language) across the 4.x versions of PHP. The 4.0 series is not
-enough to run ewiki, you'll need at least a PHP 4.1 (4.07) to make it work
-reliable.
-
-One must also know, that there are also differences between the settings of
-providers. Some for example enforce users to run their scripts in so called
-"safe mode" (crippled mode) in place of real server security guidelines.
-Other still use pre-4.3 settings for the PHP interpreter (the Win4 php.ini
-still is outdated). So take care, and adjust settings using .htaccess`
-php_option for Apache servers.
-
-
-
-        PHP settings (register_globals)
-        �������������������������������
-        Because ewiki was developed on later PHP versions (at least 4.3), it
-        heavily uses the $_REQUEST array and assumes a deactivated
-        "register_globals" setting in php.ini
-        If this is not the case for your setup / WebServer. or with your
-        provider the ewiki.php script may expose a lot security leaks
-        (because of uninitialized variables).
-
-        ewiki in general does only use a few global variables, but especially
-        the $ewiki_ring variable (which is used for PROTECTED_MODE) can lead
-        to problems, if you use it without an existing authentication
-        concept.  The $ewiki_plugins is also a very complex task, and I
-        cannot safely state that it won't be able to produce exploits, if
-        the variable is tweaked externally (pushed into by a client).
-
-        So the best thing you could do is to disable register_globals (this
-        can be done from inside a directories .htaccess file by inserting
-        the line "php_option register_globals off").
-
-        A fragments/ include will be added to strike against variables which
-        got set from outside (this is rather easy for variables used by
-        ewiki, because their names all start with "$ewiki_").
-
-
-
-        The two modes of operation (_protected_mode and _flat_real_mode)
-        ��������������������������
-        While this wiki was originally developed as a real wiki, many people
-        use it for different things now, like private HomePages, easy CMS on
-        commercial web sites.
-
-        This fact lead to the support of a restricted operation mode, now
-        known as the _PROTECTED_MODE. It is often used to require people to
-        log in before they can edit pages or upload things. In this README
-        this mode of operation will often be referred to also as the
-        'crippled mode'. It is completely optional, and doesn't have any
-        impact on speed, when left disabled.
-
-                                  Btw, the standard ewiki operation mode is
-                                          now known as the _FLAT_REAL_MODE.
-
-        If you'd like to use authentication, you'll probably want to chain
-        some plugins which enable you to use the user database from
-        yoursite.php, so you do not need a separate .htaccess or an
-        additional relational database for passwords. Please see the section
-        on auth plugins.
-
-        See also the EWIKI_PROTECTED_MODE configuration constant and the
-        separate "plugins/auth/README.auth" file for further and more
-        detailed informations on this feature.
-
-
-
-simple usage restrictions via wrappers
-��������������������������������������
-The easiest way to cripple a Wiki setup to be browseable-only for the larger
-public, and to allow only a small subset of users to edit pages is to write
-two wrapper scripts around the ewiki.php library.
-
-One of the wrapper scripts should include and use ewiki as described in the
-"Integration with yoursite.php" paragraph. You may want to move this wrapper
-script into a password protected subdirectory (say "/wikiadmin/index.php").
-
-Another wrapper script should then be provided for the users that are only
-allowed to view pages. To disallow editing you'll just have to enrich it
-with commands like:
-
- unset($ewiki_plugins["action"]["edit"]);       # disables editing
- unset($ewiki_plugins["action"]["info"]);       # no info/ action
- unset($ewiki_plugins["page"]["SearchPages"]);  # no search function
- unset($ewiki_plugins["action"]["view"]);       # kill wiki completely
-
-This code must occur after you have 'included("ewiki.php");' the library,
-but before you call the 'ewiki_page();' function, so the unwanted actions
-and pages really do not get activated.
-
-So far the basic approach. If you however have real user authentication
-code behind the scenes you probably don't want to maintain two different
-wrapper scripts. You'll then just put the functionality stripping code
-from above into an if-clause in "yoursite.php" like:
-
- if (! $user_is_logged_in) {
-   unset($ewiki_plugins["action"]);            # (do it less destructive ;)
- }
-
-Note: this is again an example, DO NOT copy&paste examples and assume
-they'll work for you!
-
-
-
-PhpWiki compatibility
-���������������������
-The MySQL database table is partially compatible to PhpWiki versions 1.2.x,
-but not with the current PhpWiki 1.3.x versions. There is however now the
-db_phpwiki13 plugin which allows to access those (rw).
-
-
-
-        Transition from another WikiWare
-        ��������������������������������
-        If you choosed ewiki to replace an already existing wiki script on
-        your site, you should first think about, that the syntax/WikiMarkup
-        isn't equal across all Wikis. There are a few markup extension
-        plugins, that may help you around this, but beware that transition
-        with a larger collection of WikiPages won't be very easy.
-
-        The best way to import the old WikiPages to ewiki, is to first
-        export it using the tools of the previous WikiWare. You can then
-        just put the produced text/plain PageSource into "init-pages/",
-        because all files found therein (note, that there shouldn't be any
-        file name extension like .txt) are feed directly into the ewiki
-        database, when ewiki is run for the very first time (when the
-        EWIKI_PAGE_INDEX is not found in the db).
-
-        There is a "plugins/db_phpwiki13.php" which may be useful in first
-        trying ewiki, but it is not recommended to use it for daily work.
-        Speaking of PhpWiki you could also use the "tools/t_convertdb.php"
-        to import (and markup convert) all pages from PhpWiki to the ewiki
-        database format.
-
-
-
-
-
-
-  -------------------------------------------------------------------- 3 --
-
-
-
-
-Internals
-���������
-The MySQL database table structure is to a certain degree compatible
-with that of the well known �PHPWiki� v1.2.x (you only need to change
-EWIKI_DB_TABLE_NAME to "wiki" to use it). This is the MySQL statement
-which creates our database table (you can find it at the bottom of the
-"ewiki.php" script):
-    CREATE TABLE ewiki (
-        pagename VARCHAR(160) NOT NULL,
-        version INTEGER UNSIGNED NOT NULL DEFAULT 0,
-        flags INTEGER UNSIGNED DEFAULT 0,
-        content MEDIUMTEXT,
-        author VARCHAR(100) DEFAULT 'ewiki',
-        created INTEGER UNSIGNED DEFAULT 0,
-        lastmodified INTEGER UNSIGNED DEFAULT 0,
-        refs MEDIUMTEXT,
-        meta MEDIUMTEXT,
-        hits INTEGER UNSIGNED DEFAULT 0,
-        PRIMARY KEY id (pagename, version)
-    )
-
-I didn't like the column name {pagename} but as I've seen this was
-the only difference I renamed it, therefore now the ewiki_database()
-function translates it from "pagename" to "id" and vice versa most of
-the time - else this would be really slim and nice code :)
-
-The columns {version} holds the different saved page versions. Other
-Wikis require a secondary "backup" or "history" table for old versions,
-but as I couldn't imagine what this is for, there is just one table
-in ewiki; and it seems this is really enough. The first {version} of
-a wiki page is always numbered 1. An existing page {version} will
-never get overwritten => very secure MySQL usage.
-
-For what's in the {flags}, see the README section about constants. The
-{content} of course holds the wiki pages source. The {created} and
-{lastmodified} should be clear too.
-
-{refs} contains a "\n" separated list of referenced WikiPages. The
-code to generate that list is rather unclean, so it often contains
-GhostPages. However this does not hurt ewiki and the few functions
-that utilize {refs}, so there is currently no need to slow it down
-by fixing this.
-
-{meta} can hold additional informations, which allows to extend ewiki
-without requiring to ALTER and convert the ewiki database table. It
-currently holds some mime headers for binary content and some other
-useful informations for images and uploaded files.
-
-{hits} should have gone into {meta} really. But having it separate
-allows us to use the very fast mysql UPDATE function.
-
-Note, that the ewiki database table can hold other things than wiki
-pages - binary content (images) for example, depending on the setting
-of the {flags} field.
-
-And last comment about this, the one-table-concept also made it really easy
-to implement the flat file based "database backend".
-
-
-
-ewiki_ functions
-����������������
-Some of the core functions of ewiki.php can be used separate from the
-others and some of them were designed to be replaced by different
-implementations.
-Btw, all the functions, constants and variables start with "ewiki_"
-to make it easier to mix it into other projects (reduces function name
-conflicts and similar problems, that usually arise if you join two
-or more scripts into one program).
-
-
-   ewiki_page($id)
-   ---------------
-       This is the main function which fetches the selected WikiPage
-       (or the one given with $id) via ewiki_database to transform
-       with ewiki_format().
-       If the requested page does not exist it returns the edit
-       screen.
-       It also includes some virtual pages (InfoAboutThisPage,
-       NewestPages, SearchPage, ReferencesToThisPage, ...).
-
-
-   ewiki_page_...()
-   ----------------
-       These functions were separated out from the main ewiki_page()
-       to make it more readable.
-       Most of them contain code to generate the few special/internal
-       WikiPages (Search, Newest, Info, and the Edit <FORM>, ...)
-
-
-   ewiki_control_links($id, $data)
-   -------------------------------
-       Prints the line with the EditThisPage and PageInfo, ... links.
-
-
-   ewiki_format($wiki_source, $params)
-   ----------------------------------------------------------
-       This returns the formatted (HTML) output for the given WikiSource
-       (with all the WikiMarkup in it).
-
-       The second param is an array with various config overrides. An entry
-       of "scan_links"=>1 for example tells ewiki_format to lookup the
-       referenced WikiPages in the database (see ewiki_scan_wikiwords) for
-       filling up $ewiki_links. Another $params entry is "html"=>0, which
-       controls interpetation of the <html>...</html> page content blocks.
-
-
-   ewiki_render_wiki_links(&$o)
-   ----------------------------
-       Transforms WikiLinks and square brackets in a page into html links.
-
-
-   ewiki_scan_wikiwords(&$wiki_source, &$ewiki_links)
-   --------------------------------------------------
-       work with regex on the wiki source text, to find valid WikiWords,
-       the $ewiki_links will be filled with informations if the found page
-       names exist in the DB.
-
-
-   ewiki_link_regex_callback()
-   ---------------------------
-       Called from ewiki_format(). To separate the ewiki_format() from
-       the database this function will utilize the global $ewiki_links
-       (generated on demand by ewiki_format) to output either a normal
-       link or a question-mark after the WikiPageName to signal a
-       non-existent page.
-
-
-   ewiki_script()
-   --------------
-       Builds the complete URL needed to access the given resource. This
-       function replaces/enhances the static EWIKI_SCRIPT constant and
-       unifies the generated URLs (less bugs). It also helps around
-       various design flaws (like nice looking URL strings), that made
-       some parts of ewiki a bit weird and unreliable in the past. Btw,
-       now the base URL is stored in $ewiki_config["script"].
-
-
-   ewiki_script_binary()
-   ---------------------
-       Is just a ewiki_script() wrapper, but can additionally distinguish
-       between binary download and upload URLs, which could be utilized by
-       (database external) plain file storages (see plugins/binary_store).
-
-
-   ewiki_binary()
-   --------------
-       Gets called automatically for requests with the ?binary= trailer
-       which is used to reference cached and uploaded images (or not
-       yet cached ones).
-
-
-   ewiki_author()
-   --------------
-       returns a string with REMOTE_ADDR and the $ewiki_author or a default
-       string incorporated
-
-
-   ewiki_auth()
-   ------------
-       Is a simple interface to a probably large collection of plugins,
-       which should to actual user and permission management. Support for
-       this in the core is however still sporadic.
-
-
-   ewiki_auth_user()
-   -----------------
-       Queries all registered user databases, and is usually itself called
-       from within an auth_method/auth_query plugin.
-
-
-   ewiki_t()
-   ---------
-     Fetches a text string from the $ewiki_t[] array and additionally adds
-     some text pieces into it (given as second param). It can retrieve
-     translations for registered abbreviations, or searches for complete
-     text fragment replacements. It also understands _{...} to recursively
-     translate a text snippet inside of larger text blocks.
-     This is probably a bit slower and less readable than the previous usage
-     of EWIKI_T_ constants, but it saves some memory and allows to extend
-     translations or additional text constants (of plugins) a lot more
-     easier (previously one had to edit inside a function, which is almost
-     impossible to do from outside / per configuration).
-
-
-   ewiki_make_title()
-   ------------------
-     Returns a string enclosing (the generated) page title (as link) into
-     the html title markup "<h2>". The $class parameter actually tells from
-     which plugin sort it was called, and this decides if a link will be
-     generated or the title will be unclickable plain text (the setting in
-     $ewiki_config["print_title"] is used to determine that). $go_action tells
-     which action to link the title to.
-
-
-   ewiki_chunked_page(...)
-   -----------------------
-     Is a helper function to split large results into multiple click-through
-     pages, and is used by info/ and some search functions/plugins. It only
-     produces the click-through links for inclusion on other dynamic pages,
-     allows overlapping of page chunk ranges.
-
-
-   ewiki_in_array($value, &$array, $dn=0)
-   --------------------------------------
-     Case-insensitive variant of PHPs` in_array(), returns the $value if
-     found. The $array will be all-lowercased afterwards (except when $dn
-     was set).
-
-
-   ewiki_array($array, $index=false, $am=1)
-   ----------------------------------------
-     Returns input-array lowercased (indices), or just the entry for the
-     $index if searched for. The $am decides if multiple entries should be
-     merged together (uppercase+lowercase merging produces overlaps).
-
-
-   ewiki_database($FUNCTION, $args=array() )
-   ------------------------------------------
-       This function is the "database abstraction" in ewiki. It contains
-       ''only'' eight SQL statements which must be replaced if you'd like
-       to use another database server. It is very stupid, and does not know
-       much about its database (keeping it extensible on the other hand),
-       therefore one must be careful when passing database entries to it.
-       The individual "atomic" functions are:
-
-       "GET",  $args = array( "id"=>STRING, ["version"=>NUM] )
-           Fetches the newest wiki page incarnation from the database,
-           or alternatively the one given by version.
-
-       "WRITE",  $args = array( COLUMN-NAME => VALUE, ... )
-           Saves the contents of the given data array in the database,
-           does _never_ overwrite an existing entry (you must keep track
-           of the {version} yourself).
-
-       "GETALL",  $args = array( "COLUMN-1", "COLUMN-2", ... )
-           Fetches an array of all existing pages in the database, but
-           returns it as ewiki_dbquery_result object, which will throw
-           the requested columns on ->get(), where the entries 'id',
-           'version' and 'flags' are always present.
-
-       "FIND",  $args = array( "WikiPage1", "WikiPageName2", ... )
-           Searches the database for the queried page names, returns an
-           array which associates the boolean value (if pages found) with
-           their names
-
-       "SEARCH",  $args = array( "COLUMN" => "CONTENT" )
-           Returns only those pages, where the database COLUMN has a content
-           that matches the requested value; the list of pages is returned
-           as ewiki_dbquery_result object, where you can access the
-           individual entries using the ->get() call, which will return the
-           columns 'id', 'version', 'flags' and the scanned COLUMN of course
-           unless you ->get("_ALL=1").
-
-       The following three actions are not required for correct operation,
-       but provide additional functionality for some plugins or tools.
-
-       "HIT",  $args = array( "id"=>STRING )
-           Increases the hit counter of the given wiki page by 1,
-           what is not implemented in db_flat_file.
-
-       "OVERWRITE"
-           Is a wrapper to "WRITE" and does replace existing entries.
-
-       "DELETE", $args = array( "id"=>STRING, "version"=>NUM )
-           Removes the specified page (only the given version) from the
-           database; implemented in all database plugins but should be used
-           from within the tools/ only.
-
-       Other functions are usually used internally only, as for example the
-       "ALLFILES" command in dbff or dba/dbm plugins.
-
-
-   ewiki_dbquery_result
-   --------------------
-       Has the member variables $keys and $entries, where the latter
-       contains an array of page names that where triggered by your GETALL
-       or SEARCH request, and the $keys array contains the column names that
-       each subsequent "$result->get()" will return.
-
-       get()
-           Returns the database entry array (see GET above), but only the
-           fields the database query should return (at minimum these are
-           'id', 'version' and 'flags' and the searched column for SEARCH).
-
-       get("_ALL=1")
-           Instead returns the complete entry.
-
-       count()
-           Returns the number of found database entries.
-
-       add($row)
-           [internal]  This is used by the ewiki_database() core functions
-           to initialize the $result object with the found entries.
-
-
-
-$GLOBALS pollution
-������������������
-At least the ewiki_page() function produces variables in the
-global namespace. Of course they also were named to not interfere
-with anything from yoursite.php:
-
- $ewiki_id     - Contains the current page name, after ewiki_page()
-                  was called.
-
- $ewiki_action  - Contains the $action/ForTheCurrentPage.
-
- $ewiki_title   - Will be set after the first call to ewiki_page(),
-                  it is most useful to be printed inside the <TITLE>
-                  tags inside <HEAD>. So if you want to use it you
-                  should call ewiki_page() very early, but save its
-                  output into a variable for later use. This way
-                  you can make the current wiki pages` title available
-                  (the _title may be different from the pages _id).
-
- $ewiki_errmsg  - Sometimes used to pass error notices back (ewiki_auth
-                  does so for example).
-
- $ewiki_links   - Is an array produced by ewiki_format() that associates
-                  all found WikiPageNames with a value of 0 or 1,
-                  depending on if the referred page exists in the
-                  database.
-
- $ewiki_author  - The content of this variable is saved in the author
-                  field of newly created wiki pages (it will be filled
-                  with IP:PORT if not set from outside). This is only an
-                  informational setting, and does not directly correspond
-                  to the _PROTECTED_MODE.
-                  You should set it, whenever yoursite.php notes a logged in
-                  user (so his login gets saved in the wiki pages 'author'
-                  column). But you should REALLY NOT SPAM IT with your own
-                  name or ad words.
-
- $ewiki_auth_user  - Is set by ewiki_auth_user() whenever it successfully
-                  authenticates a user in _PROTECTED_MODE. This variable
-                  is then used as reliable state setting, which affects
-                  permission granting.
-
- $ewiki_ring    - Holds the permission level ('ring') of the currently
-                  authenticated user (or else will be unset). This value
-                  tells only about the user, many plugin functions have
-                  built-in requirements which will be compared against
-                  this value (no value or zero means full permissions).
-                  While this is the built-in way to grant permissions
-                  and often also suits the needs to do it, the _auth()
-                  plugin interface allows to work at a much finer degree
-                  of access granting.
-                  values: 0=administrator, 1=moderator, 2=editor, 3=guest
-                  See also plugins/auth/README.auth for more informations.
-
- $ewiki_plugins - Is an array which connects task names (say "database"
-                  or "image_resize" for example) to function names.
-                  You can utilize this if you decide to extend ewiki.
-                  There is an own chapter on this.
-
- $ewiki_config  - Imports some configuration settings from older constants,
-                  and introduces newer ones, which can then be overridden at
-                  runtime. Also holds some work and markup transform data.
-
- $ewiki_t       - Text definitions and translations for all possible
-                  messages.
-
- Things that disappeared again, and which are now part of the $ewiki_config
- array instead include:
-
- $ewiki_data    - May reappear by setting a _config[] variable.
-
- $ewiki_interwiki  - Was errornously part of _plugins[] for some time.
-
- $ewiki_script  - Was a global var for a short period of time, but now is
-                  a subentry in $ewiki_config.
-
-
-
-
-EWIKI_ constants
-����������������
-This chapter explains some of the constants and how you can utilize
-them to tweak some of ewiki's behaviour.
-
-The recommended way to change settings is to copy the define() commands
-from "ewiki.php" into "yoursite.php" (see our example "config.php"). This
-is a good idea, because then your settings won't get lost if you upgrade
-to a newer version by overwriting your tweaked "ewiki.php".
-
-                   [Note: constants in PHP can be defined() once only, so
-                   pre-defining them in "yoursite.php" or a "config.php"
-                   script is nearly like a 'configuration']
-
-To define() some of those constants in 'yoursite.php' is especially a good
-thing, because some of them are more used like state variables and it may
-be more senseful to set them depending on informations only available in
-the scripts of yoursite.php (for example if yourscripts provide a way to
-authenticate and login a user you may give him additional rights within
-ewiki by pre-defining one of the following constants).
-
-
- EWIKI_SCRIPT
-     This is the most important setting. It is used by ewiki.php
-     to generate links to other WikiPages.
-
-     It needs the name of yourscript.php which itself includes
-     ewiki.php.
-     The name of the linked WikiPage is just appended to the string
-     defined here, so you must ensure that it either ends in "/"
-     or "?id=" or "?name=" or "?page=" so it constructs a valid
-     URL after concatenation (or %s replaced) with the WikiPageName.
-
-     If you utilize mod_rewrite on your server, you may wish to
-     make it blank when all requests to http://wiki.example.com/
-     are redirected to the correct script by your WebServer.
-
-     If your wrapper script for example is called 'index.php' then you
-     can just set EWIKI_SCRIPT to "?page=" (which then refers to the
-     index.php of the current directory).
-     You should preferrably set it absolute to the servers DocumentRoot,
-     which gets a requirement if you'd like to give page names and actions
-     via PATH_INFO "/wiki.php/WikiPage" and not as QUERY_STRING "?id=".
-
-     Update: this constant will stay, but the core script now utilizes
-     the ewiki_script() function (which itself additionally respects
-     the $ewiki_config["script"] config variable in favour).
-
-     ewiki_script() introduces use of the "%s" placeholder inside
-     EWIKI_SCRIPT, which will be replaced by pagename and action, when
-     URLs are generated.
-
- EWIKI_SCRIPT_URL
-     Some parts of ewiki require the absolute URL of the ewiki wrapper
-     script. So in contrast to the (often) short EWIKI_SCRIPT, this
-     constant MUST contain the protocol and server name, like:
-     "http://www.example.com/wiki/index.php?id="
-
-     If you do not set this constant, it will be guessed by the
-     ewiki_script_url() funciton, what often works but may be suboptimal
-     and could also lead to security problems.
-
-
- EWIKI_DB_TABLE_NAME
-     Sets the name of the MySQL database table name to be created
-     and used to store all WikiPages.
-
- EWIKI_DBQUERY_BUFFER
-     When set to a value>0 then SQL database buffering will be enabled
-     for SEARCH and GETALL queries. This is mostly like the old (R1.00)
-     behaviour (memory exhaustive), but instead is limited to the size
-     defined by this configuration constant (for example 384K).
-
- EWIKI_DBFILES_DIRECTORY
-     Defines where db_flat_files puts the database (made up of files).
-     There is a separate paragraph about this,
-
- EWIKI_DBFILES_ENCODE
-     If set to 1 will generate urlencoded() filenames even on UNIX
-     systems, so the dbff database 'files' get exchangeable across
-     DOS/Win and UNIX filesystems. Not recommended, and will make
-     ewiki run bogus, if you switch it after there already entries
-     in the database.
-     It may however be useful to enable this per default, if you want to
-     "backup" (this is the wrong way) from a Unix server to a Win box via
-     an ordinary FTP program (more professional tools could however handle
-     this more easily).
-
- EWIKI_INIT_PAGES
-     Names the directory from which the basic pages should be read and
-     then written into the database, when ewiki is run the very first
-     time (or the FrontPage - EWIKI_PAGE_INDEX) is still empty.
-     Btw, you could use the 'ewikictl' utility to export all your Wiki
-     pages into this directory as auto-reinit-backup.
-
-
- EWIKI_NAME
-     Defines the name of your Wiki. (This is not used currently, but
-     is required, as _PAGE_INDEX is often just set to "FrontPage".)
-
- EWIKI_PAGE_INDEX
-     This defines the name of the WikiPage which shall be displayed
-     when no value is received within the URL. Often this is called
-     the "FrontPage" of the Wiki.
-
-     The mysql error message "Table 'ewiki' already exists" will appear
-     until you create (and fill) the page specified herein.
-
-     If you'd like to have a wiki without FrontPage, you can set this
-     constant to 0 or "" - you must then however ensure, that the ewiki
-     script is never activated without a page name!
-
- EWIKI_PAGE_NEWEST
-     This defined the name of the virtual (internally generated) page
-     containing a list of the lately added WikiPages.
- EWIKI_PAGE_SEARCH
-     Holds the WikiPageName for the search function.
-
-
- EWIKI_CONTROL_LINE
-     Pre-define this with 0 before including("ewiki.php") if you
-     don't want that "<HR><A HREF>EditThisPage</A> ..." to be shown
-     at the bottom of each page.
-
-     You must then generate the EditThisPage link yourself somewhere
-     else on yoursite.php
-
-     It is often easier to edit the ewiki_control_links() function
-     to match the layout/design of yoursite.php.
-
- EWIKI_AUTO_EDIT
-     If set to 1 (default) will automatically bring up the edit box
-     for non-existent pages. Else a page in between will appear ("please
-     edit me!") like in PhpWiki.
-
- EWIKI_LIST_LIMIT
-     Number of pages to show up in search queries (and other generated
-     pages).
-
-
- EWIKI_PRINT_TITLE
-     If set to 0 will prevent the page title from being shown on many
-     pages (generated and database content ones).
-
- EWIKI_SPLIT_TITLE
-     If changed to 1 will separate WikiPages titles into its different
-     word parts (only on top of each page).
-
-
- EWIKI_ALLOW_HTML
-     Usually you do not want that users are able to add <HTML> tags
-     inside the WikiPages as this allows for corruption of your page
-     layout or creation of harmful JavaScript areas.
-
-     This is however one of the few constants which could be set by
-     yoursite.php for logged-in users. If it is set while a user
-     saves a changed page, then the special EWIKI_DB_F_HTML will
-     be set for the newly created version, so <HTML> won't be
-     garbaged by ewiki_format() if another (not logged-in) user
-     requests the WikiPage next time.
-
-     You must start a line with a "|" to actually make the HTML
-     work within a WikiPage.
-
-     If a not logged-in user however re-saves the page this flag
-     won't be set anymore, so you should be careful about that.
-     {{edit ewiki.php and define(_DB_F_HTML with 8+16) to change}}
-
- EWIKI_RESCUE_HTML
-     Was replaced by "plugins/markup_rescuehtml.php", which now allows
-     for certain 'safe' HTML tags within the wiki source to be used.
-
- EWIKI_HTML_CHARS
-     If set the rendering function will backconvert html entities which
-     represent non-latin characters, like &#4234; or &#1324;
-
-
- EWIKI_HTTP_HEADERS
-     Allows ewiki to throw HTTP headers, where appropriate. You should keep
-     it enabled, as it allows for things like RedirectionAfterEdit (when
-     a page gets saved), and many other useful things.
-     headers() can often only be sent, if your wiki/yoursite.php is binary
-     safe, or uses PHPs output buffering (less reliable).
-
- EWIKI_HTTP_HEADERS
-     Instructs browsers not to cache delivered pages at all. This is often
-     a good thing, because otherwise unclever caches will prevent the most
-     recent wikipage version to get seen by users.
-
-
- EWIKI_CASE_INSENSITIVE
-     Was only recently implemented, but ewiki is fully configurable now in
-     regards to WikiLink case. It is enabled per default, and thus allows
-     referencing any "WikiPage" using strings like "WiKipAgE". This is
-     believed to be more user-friendly than case-dependency.
-     Reverting to "binary" page name matching is not fully complete now (our
-     database scheme was designed for case-insensitivity from the very start
-     and thus the DB code first needs tweaking before links in ewiki really
-     get case-dependent.
-
-
- EWIKI_ESCAPE_AT
-      Encodes the "@" sign into a html entities, which in the past helped
-      a little bit against address rippers. But please check out the new
-      plugins/email_protect.php, which is more effective against email
-      harvesters.
-
-
- EWIKI_URLENCODE
- EWIKI_URLDECODE
-      You shouldn't disable both unless you know, you don't need to encode
-      WikiPageNames (else almost always necessary for sanity and security
-      reasons).
-
-
- EWIKI_USE_PATH_INFO
-      If you have a broken Webserver (like many Apache versions), you may
-      wish to disable the use of PATH_INFO.
-      If you ever happen to see "Edit page '/wiki/example-1.php'", you
-      probably need to disable it.
-
-
- EWIKI_USE_ACTION_PARAM
-      Allows the page action command to be given as '&action=...' within
-      an URL (else only "action/WikiPage" allowed).
-      If you set this constant to 2, ewiki will also create such URLs
-      (instead of the usual "edit/PageName" prefix).
-
- EWIKI_ACTION_SEP_CHAR
-      Defines the character that separates the page name from the action
-      name in generated URLs. Per default this is the slash, but you
-      could use something else (like the ":" colon), which however may
-      have a few drawbacks somewhere else.
-
-
- EWIKI_DB_F_TEXT
-     This flag is set for every WikiPage inside the database. Usually
-     the only flag set on creation of a new page.
-     Starting from R1.00b previous flags will be copied after applying
-     EWIKI_DB_F_COPYMASK.
-
- EWIKI_DB_F_BINARY
-     Used for cached/uploaded images. Prevents a page from getting
-     shown.
-
- EWIKI_DB_F_DISABLED
-     If set will prevent the page from being shown. Not useful.
-     You could more easily unset the TEXT flag to disable page view.
-
- EWIKI_DB_F_HTML
-     Special flag to allow the current version to include <HTML>
-     tags regardless of the global EWIKI_ALLOW_HTML setting.
-
- EWIKI_DB_F_READONLY
-     Prevents a new version to be saved, and thus disallows
-     editing of the WikiPage.
-
- EWIKI_DB_F_WRITEABLE
-     Is the reversal of READONLY but only useful if you crippled
-     ewiki by setting EWIKI_EDIT_AUTHENTICATE, as this flag is only
-     intended to reallow editing of a page if you disallowed it before
-     with _EDIT_AUTH (which denies access to _all_ pages).
-
- EWIKI_DB_F_APPENDONLY
-     Gets implemented by the plugins/append*.php, and allows to lock
-     a page, in that users can only append to edit (or edit parts of
-     it). See the plugin description for more details.
-
- EWIKI_DB_F_SYSTEM
-     Is used to mark internally used data holders (usually serialized()
-     variables).
-
- EWIKI_DB_F_TYPE
-     Used internally to separate TEXT, BINARY, DISABLED and SYSTEM entries.
-
- EWIKI_DB_F_COPYMASK
-     When a new page is created, the flags of the previous version
-     are ANDed with this value to strip off some unsafe settings.
-     It could be possible to add the _DB_F_HTML setting to here, but
-     this would allow HTML to be used by all users if the READONLY
-     isn't set.
-     Always keep in mind, that flags could be reimported from previous
-     versions as well (I'm usure if this could happen).
-
-
- EWIKI_PROTECTED_MODE
-     Is an operation mode of ewiki, which activates ewiki_auth() function,
-     that is utilized from many places to require a permission level (from
-     authenticated users). Set this constant to 1 to enable this mode.
-     You'll also need some plugins from plugins/auth/ to make this useful.
-
-     If this constant is set to 2, then you don't need a permission plugin,
-     but can control access to the edit/ function, by setting $ewiki_ring
-     to 2 (to allow) from within yoursite.php scripts. This setting is also
-     sometimes referred to as the "ClassicProtectedMode".
-
- EWIKI_FLAT_REAL_MODE
-     Not a configuration directive, but the opposite to _PROTECTED_MODE ;)
-
- EWIKI_AUTH_DEFAULT_RING
-     Is the permission level which is to be set, if no user is logged in
-     currently (defaults to 3 - which means "browsing only").
-
- EWIKI_AUTO_LOGIN
-     If this is enabled, then ewiki_page() automatically requests for
-     (re-)presenting the login <form> on startup, if current authentication
-     isn't sufficient to go any further. Leave this enabled, it helps around
-     some problems.
-
- EWIKI_EDIT_AUTHENTICATE
- EWIKI_ALLOW_OVERWRITE
-     Outdated (were present in older ewiki versions). See
-     'plugins/auth/auth_perm_old.php' to get them back.
-
-
- EWIKI_TMP
-     Tells ewiki which directory to use for temporary files. The default
-     value is "/tmp" or whatever the environment variable $TEMP or %TEMP
-     tells (often "C:\\Windoze\\Temp" or "C:\\Trashcan" on DOS systems).
-
-
- EWIKI_LOGLEVEL
-     Log messages are internally separated into four categories:
-     0=evil errors, 1=warnings, 2=notices, 3=annoying debug stuff.
-     If you do not want a log at all, just set this constant
-     to -1 or 357. If you set it to 1 for example, you will see
-     error and warning messages in EWIKI_LOGFILE.
-
-
- EWIKI_SCRIPT_BINARY
-     This requires the REAL absolute address of the ewiki.php
-     library script (but the database must already be opened).
-     Needed for the function for cached/uploaded images.
-     You can set it to almost the same value as EWIKI_SCRIPT if it
-     is ensured that there is yet no output made, and the headers()
-     are not already sent.
-
-     Usually just "?binary=" works fine (if you use the index.php
-     way of including ewiki.php).
-
-     If you don't want ewiki to use image caching and uploading
-     functions you would define this to "" or 0, because this disables
-     the <img href> redirection through ewiki_binary(). You should then
-     also disable the following two constants:
-
- EWIKI_CACHE_IMAGES
-     Allow caching of images.
-     To disable all the image functions (uploading, caching) set this to 0,
-     as well as EWIKI_SCRIPT_BINARY and:
-
- EWIKI_IMAGE_MAXSIZE
-     ewiki will scale down images until they get smaller than
-     the absolute size (bytes) given here. This is true for cached
-     and uploaded images.
-     Your database may grow really fast, if you set it too high!
-     (even if .BMP and .XWD files are discarded normally ;-)
-
- EWIKI_IMAGE_MAXALLOC
-     Maximum size of image while uploading and resizing it (memory
-     limits).
-
- EWIKI_IMAGE_RESIZE
-     Enables the internal resizing functions.
-
- EWIKI_IDF_INTERNAL
-     Is used to identify uploaded images and data files. Usually you do
-     not want to change it, especially if there are already uploaded
-     files; however "chrome://" or "file://localhost/tmp/" could be
-     funny alternatives to the default "internal://".
-
-     Note that the renderer relies only on some unique string to detect
-     binary references, but the database functions in fact depend upon
-     "://" to return image sizes on "FIND" calls.
-
- EWIKI_ACCEPT_BINARY
-     Allows users to upload arbitrary binary files through the image upload
-     function. You should now rather use the downloads plugin, which adds
-     a lot of functionality missing better suited for such purposes.
-     This feature depends on the image upload and cache function.
-
-
- EWIKI_ADDPARAMDELIM
-     Automatically defined, holds either "?" or "&" depending on what
-     is in EWIKI_SCRIPT. You shouldn't change this unless you know what
-     you are doing.
-
-
- EWIKI_T_*
-     These were replaced by the $ewiki_t[] array and ewiki_t() function.
-
-
- EWIKI_CHARS_U
- EWIKI_CHARS_L
-     Allowed chars in WikiPageNames (uppercase and lowercase chars). Use
-     this to localize your wiki (standard Wikis only allow A-Z, think of
-     that when it comes to InterWiki).
-
-
- EWIKI_UP_*
-     URL parameters. Changing these may only be necessary, if one is already
-     evaluated within yoursite.php for other purposes (incompatibilities).
-     You could also change these just to make some of the generated URLs
-     look a bit nicer ;)
-
-
- EWIKI_DEFAULT_LANG
-     This value is used by a few plugins, that must guess the desired
-     language of visitors, or the language of a pages content.
-
- EWIKI_CHARSET
-     ewiki currently only supports the Latin-1 charset, but UTF-8
-     support is underway. So you should only specify "ISO-8859-1"
-     or "UTF-8" herein (while most other "ISO-8859-*" are believed
-     to work too).
-
-
- UNIX_MILLENNIUM
-     Ey, don't tell me you're using Windoze ;)
-
-
- EWIKI_VERSION
-     Is not used at all. It is just placed on top of every ewiki.php to tell
-     you, which version you are running currently.
-     Major releases have a version number like 'R1.00a', while testing and
-     unstable releases have another number appended 'R1.00a7'.
-
-
-See the tools/ subdir for a small utility to change the mentioned flags
-in the ewiki database table.
-
-
-
-$ewiki_config array
-�������������������
-As it turned out not all configuration settings are as everlasting that
-they can be constants (this mainly applies to "look&feel"-settings). So
-some of the above mentioned EWIKI_ constants can now be overridden by
-settings in the more flexible $ewiki_config[] array.
-
-Usually this array contains index=>value pairs with simple boolean
-meanings, but often there are more complex entries and some of its contents
-are data/behaviour entries (that were previously/falsely in $ewiki_plugins).
-
-You can override settings by just setting  $ewiki_config["..."]="...";
-because the entries in ewiki.php are defaults that do not overwrite any
-existing var. So it is really not important if you change things after or
-before the 'ewiki.php' script gets included().
-
-["script"]             Replaced EWIKI_SCRIPT, and is used to define the
-                       path/URL of the ewiki wrapper script (yoursite.php,
-                       which at least included the ewiki.php script and
-                       runs the ewiki_page() function).
-
-["script_url"]         Should contain an absolute URL to the ewiki wrapper
-                       script. (replaces EWIKI_SCRIPT_URL)
-
-["script_binary"]      like EWIKI_SCRIPT_BINARY
-
-["print_title"]        replaces EWIKI_PRINT_TITLE, but also allows finer
-                       grained control:
-                       a 1 says that titles should be added at top of pages
-                       a 2 states that titles should also link for internal
-                           and generated pages
-                       a 3 will make linked titles even for pages, that
-                           should normally not have them
-
-["split_title"]        replaces EWIKI_SPLIT_TITLE, defines if pages` titles
-                       WikiWords should be separated by spaces when displayed
-
-["wiki_pre_scan_regex"]  Is the regular expression used to separate out links
-                       from a pages` content to query the database for
-                       existence of all mentioned WikiPages.
-
-["wiki_link_regex"]    Is the actual link search regular expression. It is
-                       responsible for finding WikiWords and things in square
-                       brackets and ordinary http:// or internal:// WWW-links
-                       and even email addresses.
-
-["action_links"][$ACTION1][$ACTION2]  Holds title for $ACTION2 when shown
-                       on a page activated with $ACTION1 (only "view" and
-                       "info" get other actions` titles associated currently).
-                       This is used for the _control_links() for example to
-                       entitle/show action links.
-
-["idf"][$TYPE]         Associates arrays with identification (search) strings
-                       into classes (we have "url" and "img", "obj" for
-                       example associated with proto:// prefixes or filename
-                       extension lists).
-
-["interwiki"][$PREFX]  Connects other Wikis` script URLs to WikiLinkPrefixes.
-
-
-["format_block"][$BTYPE]  Defines "block" types, which are scanned for in
-                       WikiPages (using the given search strings), and then
-                       handled by specialized ["format_block"] plugins
-                       (instead of the core ewiki_format() function code).
-
-["format_params"][]    Contains the default $params, the ewiki_format()
-                       function will assume, if they weren't overridden
-                       by the second paramater given to it.
-
-["wm_..."]             WikiMarkup definitions.
-
-["htmlentities"]       Used by ewiki_format() to pre-escape <html> in
-                       wikipages (later some of the escaped html is
-                       often reactivated).
-
-
-
-internal coding explained
-�������������������������
-This section is to explain some of the coding style of ewiki, and how some
-things work. While many parts of ewiki carry good source code comments, it
-is always difficult to quickly understand larger scripts like the ewiki one
-by just reading it.
-
-
-
-         how ewiki operates
-         ������������������
-         ewiki_page()
-           - decodes the $id and $action from the GET or POST parameters
-           - tries to load the page from ewiki_database()
-           - if this failed then it calls the database init function
-           - calls some init plugins, calls the _auth() interface
-           - chains to ["page"] plugins which activate for registered $id's
-           - alternatively calls a plugin that was registered for $action
-           - the default however is to render the current page via _page_view()
-           - adds a page title
-           - sends the generated output (view page or plugin output) back to
-             caller (for output into yoursite.php)
-
-         ewiki_page_view()
-           - feeds the current page $data's ["content"] into ewiki_format()
-           - also decodes paramters (html allowed)
-           - returns the gererated html back
-
-         ewiki_format()
-           - beatifies the source code (unifies to plain UNIX newlines)
-           - calls init plugins (wiki source mangling)
-           - splits source into blocks, calls block plugins
-           - then goes through each line of the wiki source to generate html
-           - there is line-start, in-line and complete-markup
-           - afterwards everything went from source into the $ooo-output var
-           - first calls the link pre scan regex (which searches for
-             wikiwords and stores that information into $ewiki_links)
-           - then calls the wiki-link transformation regex function
-           - then calls post plugins and returns generated <html>
-
-         ewiki_render_wiki_links()
-           - searches for all (pre-fetched) $ewiki_links in the
-             ewiki_database ("FIND")
-           - transforms the wikiwords into html-links
-           - with the regex and callback func: returns output back to
-           - ewiki_format()
-
-         ewiki_link_regex_callback()
-           - transform the wiki source snippet returned from the
-             preg_replace() call into a html link string
-           - (complicated)
-
-         ewiki_$page_plugin_*()
-           - page plugins return html output, which usually is hardcoded as
-             strings into them
-           - provide some interactivity
-
-         ewiki_$action_plugins_*()
-           - activate on pages with special registered $action's
-           - provide some interactivity (for page editing for example)
-
-
-
-         used variables
-         ��������������
-         Variables in ewiki often have similar names, and are also
-         regularily passed by reference from one function to another (so it
-         is in fact the same variable).
-
-         $id         - Is often the name of the current page (which is to be shown
-                       returned as output. The content of this variable is
-                       also available via the global $ewiki_id [[for plugins
-                       that do not have the common ($id,$data,$action)
-                       interface parameters]].
-
-         $data       - Contains the entry fetched with the initial
-                       ewiki_database() call. This is an array of the form:
-                       array(
-                          "id" => "CurrentPageName",
-                          "version" => 1,               # 1 is the lowest possible
-                          "flags" => 1,
-                          "created" => 1002056301,
-                          "lastmodified" => 1002171711,
-                          "hits" => 235,
-                          "author" => "localhost (127.0.0.1:4981),
-                          "meta" => array("Http-Header"=>"X", "setting"=>"val"),
-                          "content" => "wiki source...",
-                       )
-
-         $action     - The $action with wich the current page was requested
-                       (most often "view", but everybody also knows "edit").
-
-         $uu         - Short for "unused". Is used as temporary variable, especially
-                       with preg_match() and string functions.
-
-         $result     - Used for database queries SEARCH and GETALL.
-
-         $row        - Holds temporarily fetched entries from the databases
-                       (like $data), if page lists are to be generated.
-
-
-
-
-
-  -------------------------------------------------------------------- 4 --
-
-
-
-
-
-Tweaking
-��������
-(this part of the README is also just a collection of random notes)
-
-
-
-Just using the wiki source transformation
-�����������������������������������������
-The ewiki_format function was designed to be used independently from the
-ewiki database.
-
-  ewiki_format($wiki_source, 0);
-
-It just needs the "wiki_source" as argument and generates a nicely
-formatted page from it. All you need to take care about is the
-$ewiki_links variable.
-Set the $ewiki_links=true ("true" and not "1" or anything else) to
-enforce ewiki_format() to treat all references as existing.
-
-To separate the ewiki_format() function out of recent ewiki versions,
-you'll also need ewiki_script(), ewiki_link_regex_callback(), ... and
-a lot of constants to take with. It is often much easier to just
-include("ewiki.php") for using ewiki_format(). You then should however
-take care, that the _binary part doesn't get activated by accident. To
-prevent this, just put following before the include() statement:
-
-  unset($_REQUEST["binary"]);
-  include("ewiki.php");
-
-If you need it more quickly, or don't want to load the whole ewiki.php
-file, then just try the fragments/wiki_format.inc, which is a stripped
-down version of an older rendering core function (no WikiLinks, no binary
-stuff). Contributed by Frank Luithle.
-
-
-
-Customizing ewiki_format()
-��������������������������
-There are various markup extension plugins available for ewiki, which
-allow you to use BBCode or the syntax of another WikiWare. But if you
-have a closer look at $ewiki_config (the defaults are in 'ewiki.php'
-around line 200), you'll notice, that you can configure the WikiMarkup
-that is to be used.
-Various "wm_..." entries map our obscure markup to html <tags> (or at
-least fragments of them). So in order to add a feature you could insert
-an own rule there. (But keep in mind, that every new WikiMarkup slows
-down the transformation function.)
-
-Often you want to append an entry to "wm_style", for example:
-
-   $ewiki_config["wm_style"]["==="] = array("<h1>", "</h1>");
-
-Would allow you to write "===SomeText===" in a WikiPage, which then would
-display as an far-too-large headline.
-
-You can also add markup with different 'start' and 'end' characters, using
-the "wm_start_end" entry in $ewiki_config. For example the following would
-render "... ((((some text)))) ..." in a page using the html <kbd> tag:
-
-   $ewiki_config["wm_start_end"][] = array(
-       "((((", "))))",   "<kbd>", "</kbd>",
-   );
-
-Please see the section on "ewiki_format() internals" on how to write a
-["format_..."] or markup plugin.
-
-
-
-Customization using CSS
-�����������������������
-There are now some interesting ways to style ewiki output, just read on.
-
-Please note, that it in your stylesheets you just write ".wiki" and
-REALLY NOT ".ewiki" this time.
-
-Also important is, that we discourage use of the underscore in CSS class
-names, because it is simply forbidden there, even if current browsers do
-not complain as loudly as the w3c does. (That's just why you'll now see
-lots of class names with minus dashes instead of underscores.)
-
-
-
-user style classes in pages
-���������������������������
-The plugins/markup_css allows you to use CSS classes and style definitions
-in WikiPages. With the double at @@ followed by a css classname or command
-you start styling a paragraph or parts of the text.
-
-  @@classname at the start of a paragraph will
-  enclose it into a <div class="classname">
-  completely
-
-  But inside of some text, the @@styledef only
-  affects the part until the next  @@  everything
-  that comes later won't be enclosed in a <span>
-
-While the css style classes must be defined in your sites` global stylesheet
-to take effect, you could also use direct CSS style commands instead. These
-also must follow the @@ immediately and may not contain spaces. So something
-like @@color:#ff0000; will work, while specifying font names may not always.
-
-
-
-rendered page content
-���������������������
-If you are not interested in walking around the "ewiki.php" script
-when you want to tune how the output looks, you should try to
-utilize the (few) CSS classes ewiki defines (it does not include
-even one color setting or <font> tag):
-
-<style type="text/css">
-
-   p     { font: ... }          // almost every part of the generated
-                                // wiki pages is inside a <p>...</p>
-
-   em    { ... }                // you could encolour this, if the browsers
-   strong { ... }               // usual italic is not emphasized enough
-
-   .indent                      // to specify a different space-indentation
-
-</style>
-
-
-
-pages enclosed in style classes
-�������������������������������
-The most powerful way to style the content ewiki includes into your site
-is to use the generic style class names which enclose every page that comes
-from ewiki:
-
-   <div class="wiki view ThatPage">
-      ...
-   </div>
-
-This <div> is always the outermost tag around the html content that returns
-from ewiki_page(). It will always contain the class "wiki", after this
-the current page action/ and PageName (the action is usually "view", but
-can be also "edit", "info", "links" or something similar).
-
-Keeping this in mind you can easily style all, a few or even just a single
-page from ewiki in your stylesheet. (We'll explain it here, because the word
-of multiple class names and the cascading way of using CSS is not very
-widespread.)
-
-.wiki  {                       // this affects every page ewiki returns
-   background-color: #ccccff;
-   font-family: "WikiFont";
-   ...
-}
-
-.wiki.view  { ... }            // only applies to pages that are "view"ed
-.wiki.links  { ... }           // BackLinks
-.wiki.edit  { ... }            // when a page gets edited
-
-.wiki.PageIndex  {             // this rule affects only a __single__ page
-   ...                         // regardless what the "action/" is now;
-}                              // useful for "PowerSearch" or "PageIndex"
-
-.wiki.edit.ThisVerySpecialPage {   // this css section applies to just one
-   ...                             // page again, and this time only when
-}                                  // it gets edited
-
-
-
-plugin output styling
-���������������������
-There often appear special 'pieces' within a rendered page that ewiki
-returns, because not everything in the returned html code belongs to the
-requested pages` content.
-
-For example the current pages` title needs its own css class, like does
-the block of action links ("EditThisPage, PageInfo, ...") below every page,
-so it can be distinguished from the pages` text.
-
-Also note again the use of the '.wiki' selector within the following
-stylesheet guide and ewiki CSS class overview:
-
-
-.wiki  h2.page.title  {         // all titles now have it, while many
-   ...                          // of them include links as well
-}
-
-.wiki.view  .action-links  {    // "EditThisPage, PageInfo, ..." links
-   ...                          // are inside such a block, like are two
-}                               // <hr>'s
-
-.wiki.info  .chunked-result {   // some generated pages (like the history
-   ...                          // info/ ones) may need to split their
-}                               // results; this matches those links
-
-  //-- the edit/ pages are separated into
-  //   following blocks:
-.wiki.edit  .edit-box   { ... }
-.wiki.edit  .image-upload   { ... }
-.wiki.edit  .preview  { ... }
-
-  //-- info/ pages contain a history of page versions, each enclosed in
-  //   a <table class="version-info">, the <tr>s inside can be selected
-  //   separately:
-.wiki.info  table.version-info  { ... }
-.wiki.info  .version-info  .action-links  { ... }
-.wiki.info  .version-info  .page-author  { ... }
-.wiki.info  .page-refs  { ... }
-.wiki.info  .page-flags  { ... }
-
-
-The class naming across most of the extension plugins is not unified, so you
-may often need to look it up here - or inside of the plugins source code.
-This is at least necessary for calendar and navbar, which follow a very
-different naming scheme.
-
-.wiki  .download-entry  { ... }
-.wiki  .download-form  { ... }
-.wiki  .upload-form  { ... }
-
-.wiki  .image-append  { ... }
-
-
-
-Idea Collection
-���������������
-Here we'll note some tricks, on how to do this and that. Some of the
-following paragraphs also explain workarounds for currently lacking
-features.
-
-
-
-        Multiple Wikis / InterWiki feature abuse
-        ����������������������������������������
-        Other WikiWare provides means to have multiple namespaces in a wiki,
-        what if fact is contrary to the original Wiki idea suggesting a
-        single flat namespace. ewiki does not support SubWikis or alike, to
-        get multiple Wikis using one ewiki installation you'll need multiple
-        layout and config wrappers (each with its own absolute URL and
-        differen EWIKI_DB_TABLE_NAME or EWIKI_DBFILES_DIRECTORY constants).
-
-        This way you'd get two independent Wikis (with two different SQL
-        database tables, or flat_files directories), and of course links
-        between those two need a special syntax. And the best approach here
-        was to use the InterWiki linking feature.
-
-        To do so, invent to InterWikiAbbreviations for each of your separate
-        Wikis and add it to $ewiki_config["interwiki"] as follows:
-
-          $ewiki_config["interwiki"]["main"] = "/wiki/main/?id=";
-          $ewiki_config["interwiki"]["office"] = "/wiki/office/?id=";
-          $ewiki_config["interwiki"]["tech"] = "http://tech.company.com/?id=";
-          $ewiki_config["interwiki"]["our-www"] = "http://www.company.com/";
-
-        The last one is an example, on how to use the InterWiki feature to
-        generate references to arbitrary web documents, with a simple syntax
-        like "[our-www:/customers/pub/rules.html]" - it's somehow standard to
-        use "company-url:" or "company-www:" as InterWikiAbbreviation for this
-        purpose.
-
-
-
-
-
-
-
-  -------------------------------------------------------------------- 5 --
-
-
-
-
-Explanations
-������������
-The next few paragraphs shall enlight more detailed how some things are
-handled in ewiki (and why it is that way).
-
-
-
-Binary and Text content
-�����������������������
-Because I'd like to keep it small (see also the "Everything in one
-script" paragraph) ewiki also creates just one database table.
-Differently from other Wikis this one has the 'flags' setting for
-each saved page. And as I successfully used this bad trick in earlier
-projects many times to integrate support for hundreds of different
-functions (CMS, links, boards/forums, ...) into a single table; I
-thought it could be funny to have something like this in ewiki too.
-
-While the image thingi seemed senseful to me, other binary data
-cannot be feed into database without helper plugins, because this is
-a Wiki script and not an almighty portal software!
-
-Uploading and caching of images requires the EWIKI_SCRIPT_BINARY
-constant to be set correctly (no output may be made before "ewiki.php"
-is included == "binary safe").
-The ewiki_binary() function handles almost all of this, and gets
-activated automagically (whenever required) as soon as ewiki.php is
-included().
-
-I believe these functions to be rather safe, as there are many sanity checks
-throughout the code to separate between _DB_F_BINARY and _DB_F_TEXT content.
-
-
-
-        Image Uploading
-        ���������������
-        The currently most important use for the BINARY flag and image
-        functions is to upload images with the small form below every page
-        edit box.
-
-        The upload/caching functions can be disabled fully if
-        EWIKI_SCRIPT_BINARY and EWIKI_CACHE_IMAGES are set empty (or zero).
-
-        URLs starting with "internal://" represent the uploaded files. The
-        string is just a md5() sum generated from the contents of the
-        uploaded file. This way files won't get saved another time if they
-        are uploaded twice.  For uploading a JavaScript-capable browser is
-        recommended. It will work without, but then requires the user to
-        copy the [internal://...] text (from one window to another).
-
-        The color of the temporary upload info screen can only be changed
-        inside the ewiki_binary() function, currently.
-
-        Beware that images usually get downscaled if they are larger than
-        specified with EWIKI_IMAGE_MAXSIZE (per default 64K).
-
-
-
-        Images Caching
-        ��������������
-        Images are usually redirected through EWIKI_SCRIPT_BINARY, and ewiki
-        tries to save them inside the database as with uploaded images. So
-        most of the facts from the previous paragraph apply to this function
-        too.
-
-        You must enable this feature with EWIKI_IMAGE_CACHING, it is shipped
-        disabled currently.
-        Adding a ?nocache to the image URL disables this feature for just one
-        specific image, if _IMAGE_CACHING was otherwise enabled.
-
-        Images are downscaled to fit the maximum defined size in
-        EWIKI_IMAGE_MAXSIZE (bytes) if the PHP libgd extension is available
-        (else dropped and then always redirecting clients which request
-        those image).
-
-
-
-        Image WikiMarkup
-        ����������������
-        Usually one writes image references using square brackets around the
-        url of an image: [http://www.example.com/pics/image.png] or:
-        [internal://md5md5md5md5md5md5md5md5md5md5md5md5.png]
-
-        This will include (inline) the image into the page, when rendered
-        and viewed.  Using the standard square bracket link entitling syntax
-        also image references can be named (non-graphics / alternative
-        text):
-        [http://www.example.com/pics/image.png | This is an example image]
-        [http://.../image.pic "or entitle it using double quotes"]
-
-        Images can also be "aligned" to either side of the screen, thus the
-        remaining text will flow around it. To achieve this include spaces
-        to the left or the right of the image URL:
-
-        * picture to the LEFT:   [http://www.example.com/pics/image.png  ]
-        * picture to the RIGHT:  [  http://www.example.com/pics/image.png]
-        * CENTRED picture:     [  http://www.example.com/pics/image.png  ]
-
-        Note that you must use __two__ spaces, currently!
-
-        Image rescaling is possible by appending x=... and y=... as query
-        string parameters behind the image URL:
-          [http://www.example.com/pics/image.png?x=160&y=120]
-        The query string parameters "width" and "height" are also accepted.
-
-        If you have an image URL, but you do not want to get that image
-        inlined into the current page, then just leave out the square
-        brackets around.
-
-
-
-        binary_store, direct access
-        ���������������������������
-        While storing the binary data together with text pages in the same
-        database is most often a good thing and suits most sites, there
-        exists also a workaround/hack to keep this binary data in plain
-        files. The advantage is a smaller database and possibly a little
-        speed enhancement (with a large collection of binary things in the
-        db). However the drawback is, that use of plugins/binary_store is
-        only transparent to the main ewiki script, but all admin tools/
-        won't be aware of it.
-
-        If you choose to use the binary_store.php plugin, you can also let
-        ewiki generate URLs directly to the then stored data files if you
-        just set the EWIKI_DB_STORE_URL constant.
-
-        Please see the paragraph on this plugin for more informations on
-        this.
-
-
-
-        Arbitrary Binary Content
-        ������������������������
-        Set the EWIKI_ACCEPT_BINARY constant, if you'd like to allow any
-        binary file to be uploaded and saved in the database using the image
-        upload function.  Uploaded files will show up as ordinary (except
-        that "internal://" href prefix) links.
-
-        Please also note the "plugins/download.php", which does a much
-        better job than this constant.
-
-
-
-$action and $id
-���������������
-Inside of ewiki.php you'll see many occurrences of variables named $id and
-$action. The $id refers to the current page, which usually is a string like
-ThisPage, ThatPage, OrAnotherPage.
-
-Because just having pages wasn't believed to be sufficient enough, there
-is also a way to do something with them. That is what the $action tells.
-The most often used $action is "view" and is automatically assumed when
-no other $action was specified in the current ewiki URL. For non-existent
-pages alternatively the "edit" $action may get used instead.
-
-So the $action now delegates control about a requested page to a subfunc
-or plugin of ewiki, so the stored data of the page can be used for
-something (viewing being again the most common thing to do with it).
-
-"action/ForTheCurrentPage" is how both often looks in conjunction (again:
-if there is no "$action/" then "view/" will be assumed). Here the $action
-appears in front of the page name separated by a slash. A pagename now can
-contain slashes too, because ewiki can figure out, that "view/That/Page"
-separates into the $action being "view" and $id is "That/Page" in this
-example (the "view" gets mandatory in such cases).
-
-
-
-        ewiki URLs
-        ����������
-        "$action/$id" is most commonly appended as "GET parameter" to an
-        ewiki URL, after a string like "?id=" or "?page=" - you've already
-        noticed that!
-
-        There are of course other ways to design the URLs ewiki produces
-        and uses, the PATH_INFO being one of the most favoured alternatives.
-        (we had a paragraph on this earlier, see on top of this README)
-
-        Other Wikis use different URLs too, but you can tweak ewiki easily
-        to a different behaviour, because you have the chance to pass your
-        $action and $id to ewiki_page() from different sources. And because
-        URL generation is encapsulated into the function ewiki_script()
-        you could easily change just a few lines to make them look like you
-        desire.
-
-        The $action can be passed as "?action=" parameter already (this is
-        core support), so URLs could for example look like
-        ".../my/wiki.php?id=ThisPage&action=view" ... or something alike.
-
-
-
-
-
-
-
-  -------------------------------------------------------------------- 6 --
-
-
-
-
-
-
-Everything in one script
-������������������������
-I think its handy to have one script for one task, and as ewiki is not
-intended to be used as portal script I think it's senseless to have
-always thousands of libs/scripts surrounding it.
-
-However as time went on, it turned out, that it would either slow down
-the core 'library' when everything was included into it, or that there
-couldn't be much further development at some point.
-
-So packaging useful but non-essential extensions into separate files was
-a good decision. Most of the plugin code can however still be inserted
-into or appended to the main "ewiki.php" script easily.
-
-As I realized that it really takes some time to edit the source when
-including non-standard things I decided to add that simple extension
-mechanism. Internally it is represented by the "$ewiki_plugins" array,
-which holds an list of alternative functions for various tasks.
-This allows to just include("a/plugin.php") for additional functionality
-inside ewiki.
-
-   Note: if you're going to use almost all plugins, you should think about
-   merging them altogether into one .php file:
-   cat plugins/*.php > all-plugins.php
-   It is much faster to include() just one big .php script, than it is to
-   let the PHP parser run over twenty small ones (PHP is not interpreted,
-   but memory-compiled).
-
-
-
-database plugins
-����������������
-The ewiki.php core script contains a database request function which is
-tailored to a MySQL database. However that function is already prepared
-to chain to another "database abstraction" function if desired.
-
-
-
-         MySQL support
-         �������������
-         The first implemented, and still most recommended way to use
-         ewiki is with a MySQL (3.21 or later) database. RDBMS work more
-         reliably and of course much faster than any other of the ewiki
-         database backends.
-
-         As the core ewiki_database() inside ewiki.php already includes
-         the MySQL database calls, there is usually nothing to do, but
-         opening a database connection before ewiki.php is included()
-         from yoursite.php
-         Please look at the top of this README for an example.
-
-         As PHPs mysql_() functions don't require a db resource link to
-         be given anymore, the ewiki_database() function does not pass
-         and thus does not require it too. (If you use more than one MySQL
-         database, you should take care, that ewiki accesses the one you
-         accesses least.)
-
-
-
-         plugins/db_flat_files
-         ���������������������
-         If you don't have access to a MySQL database, then just include()
-         this plugin to save your wiki pages into simple text files (editable,
-         often called "flat files") inside a dedicated subdirectory. You
-         must set EWIKI_DBFILES_DIRECTORY in the 'ewiki.php' script to the
-         correct dirname. Don't forget, that it must be given either relative
-         to where the ewiki.php script is run from (like "./pages") or
-         absolute to the servers filesystem root (for example
-         "/export/htdocs/user528742/www.example.com/ewiki/pages") but NOT
-         relative to your WebSpaces DocumentRoot!.
-
-         Usually "/tmp" will work, but this one is purged on every boot; and
-         therefore you should create a new sub directory (" mkdir ./pages ")
-         where all files go into. This newly created subdir must be made
-         �world-writeable� using the command "chmod 777 ./pages", because the
-         WebServers user id counts when accessing it.
-
-         Usually you can do both from within your ftp client (the commands
-         are the same if you have a shell account):
-         ftp> cd .../ewiki
-         ftp> mkdir pages
-         ftp> chmod 777 pages
-         ftp> ls
-         -rw----r--    1 yourname yourname    57024 01. Jan 00:00 ewiki.php
-         -rw----r--    1 yourname yourname      512 01. Jan 00:00 index.php
-         drwx---r-x    2 yourname yourname     4096 01. Jan 00:00 init-pages
-         drwxrwxrwx    2 yourname yourname     4096 25. Feb 23:59 pages
-         drwx---r-x    2 yourname yourname     4096 01. Jan 00:00 plugins
-         -rw----r--    1 yourname yourname    33010 01. Jan 00:00 README
-         ftp> quit
-
-         In graphical FTP clients there is usually a menu entry to set
-         "access mode" or "access rights" (sometimes "file permissions") of
-         files and directories equally.
-
-         Again: don't forget to set the EWIKI_DBFILES_DIRECTORY constant to
-         the correct value!
-         If you create a subdirectory for the page files in the same directory
-         the main 'ewiki.php' script resides, you usually want to set the
-         config constant to just "./thesubdirectory" - here you could leave
-         out the "./" (not required as it only refers to the current path).
-         Btw, the slash character will work in directory specifications on
-         windoze systems too (mr. bill once had to introduce a hierarchical
-         filesystem in DOS 2.0, but choosed the bad backslashes, so no one
-         should notice where that idea was borought from).
-
-         The saved pages are in a format usually referred to as
-         "message/http" (like www service request) or "message/rfc822"
-         (internet mail).  They usually look like:
-           +-----------------------------------------------
-           | id: WikiPageName\r
-           | version: 1\r
-           | flags: 1\r
-           | author: 127.0.0.1:3054\r
-           | created: 1046532697\r
-           | lastmodified: 1046532697\r
-           | refs: \nErfurtWiki\nNewestPages\n\r
-           |\r
-           | !! WikiSourceContent
-           | <more-text>...
-
-         This file format can be exported by the "backup" tool, so you could
-         easily change from the MySQL database to the flat-files one, if
-         desired. Each page file exists in different versions, where the
-         version number is always appended to the saved pages` file name.
-
-         EWIKI_DBFILES_NLR converts newlines into the string "\n", but just
-         for the values of the metadata. So there shouldn't occur much
-         inconsistency, because the wiki content is saved binary safe in
-         those "flat files".
-
-         Filenames will be heavily converted on Win32 (urlencoded), while on
-         state of the art UNIX/Linux systems only a few characters are
-         replaced (slashes into backslashes) to match filesystem requirements.
-
-         Problems: dbff WikiPageNames are currently not case-insensitive on
-         UNIX-filesystems (while the MySQL-table is).
-         Hits won't get counted; I don't think it is that essential, and it
-         would take too much effort and time (file accesses) to support this.
-
-         Note: You cannot do a "backup" from a Unix server to a Win box by
-         using a plain FTP program, because many characters are allowed in
-         Unix filenames but not on Win partitions. If you really want and
-         need to do so regularily, you could then setup ewiki with
-         EWIKI_DBFILES_ENCODE enabled from the very beginning. - The better
-         aproach was to use 'ewikictl' or 't_backup' or 't_transfer' for the
-         backup task.
-
-
-
-         plugins/db_fast_files
-         ���������������������
-         NOTE: The db_fast_files has been merged into db_flat_files, so both
-         formats can be read now - at the same time! Updated or new pages will
-         however always be written in the file format determined by
-         EWIKI_DB_FAST_FILES (defaults to 0), edit the "db_flat_files.php"
-         script to change that constant setting, or even add it to your
-         "config.php" so it was always present.
-
-         While "db_flat_files" allows you to edit the WikiPage files (using
-         any simple text editor), the "db_FAST_files" plugin saves the pages
-         in a binary&compressed format (utilizing PHP's serialize function).
-
-         This generally leads to a speed enhancement. Additionally this also
-         allowed the PageHit counting to be activated (which is off in plain
-         flat files).
-
-         So you may wish to use this plugin in favour of the older
-         db_flat_files.  And as now both methods are available at the same
-         time, you can switch whenever you want.
-
-         Most of the setup guide from above is true for this one, too.
-
-         An additional configuration constant introduced here is
-         EWIKI_DBFILES_GZLEVEL, which tells the PHP internal zlib how much
-         time to spend on compression of the saved pages. Usually the zlib
-         uses a default of 5, but for speed purposes it is set to 2 here. You
-         can also set the constant to 0 so the files will get saved
-         uncompressed (but still in 'binary' format). A value of 9 will give
-         you the smallest possible files, but this takes a little more CPU
-         cycles (a bit slower).
-
-         This plugin was contributed by Carsten Senf.
-
-
-
-         plugins/db_any
-         ��������������
-         If you use a relational SQL database other than MySQL, then you
-         may want to give this plugin a try. It itself provides a wrapper
-         for the PHP database access wrapper libraries ADOdb, PEAR::DB and
-         dbx().
-         These wrappers themselves provide unified access to various SQL
-         databases in contrast to the many highly different db access
-         functions of PHP. Each of these db access wrappers has advantages
-         and disadvantages and so none of them is really widespread and many
-         users of course only jump on one of these trains. Because ewiki now
-         tries to be 'library' it will use whatever database access wrapper
-         you already have running on your site or container CMS, and the
-         highly simplified anydb_*() now tries to make use of it.
-
-         The plugin is based upon the current MySQL database backend, and
-         thus may not be compatible to all proprietary SQL variants other
-         vendors usually enforce.
-
-         Before you can use the db_any plugin you must ensure that you
-         either already have the PHP dbx extension dll loaded or the PEAR::DB
-         or ADOdb include files loaded. db_any will like to see an opened
-         database connection inside of the global '$db' variable. If
-         yoursite.php hasn't already a connection opened when ewiki.php
-         gets included, then you should preferably choose to use the
-         anydb_connect() function to do so (it will choose from PEAR::DB,
-         ADOdb and PHP dbx interfaces).
-         The '$db' connection handle can be shared between your site and
-         ewiki as long as it is a handle for one of the mentioned database
-         access wrapper libraries.
-
-
-
-         plugins/db_adodb
-         ����������������
-         obsoleted by plugins/db_any
-
-
-
-         plugins/db_dba
-         ��������������
-         including() this plugin enables ewiki to store the WikiPages in the
-         Berkeley DB file given with the EWIKI_DBA constant.  Your PHP binary
-         must be compiled with either the "dba" or the "dbm" extension to use
-         this (and the dba extension requires at least one other database
-         type to be enabled).
-
-         The plugin has a built-in list of preferred dba database types, but
-         it respects the filename extension of EWIKI_DBA. For example
-         "wiki.db3" would create a DB3 database file, while "wiki.gdbm"
-         resulted in a GDBM file, if that php extension was available.
-
-         The PHP dba extension can support the db types (if compiled for):
-         .gdbm
-         .ndbm
-         .db2
-         .db3
-         .db4
-         .flatfile
-         .dbm
-
-         If you have the PHP "dbm" extension enabled, wrapper functions will
-         get enabled, so this works even if the "dba" extension is not there.
-
-         The .flatfile is often available even if you haven't compiled your
-         PHP binary for anything else than "dba". This may also often be
-         faster than one of the db_flat_files plugins.
-
-         If EWIKI_DBFILES_GZLEVEL is set to a value from 1 (fast) till 9
-         (very good compression, but slow), the saved pages will get
-         compressed inside the dba database. With 0 this feature gets
-         disabled.
-
-
-
-         plugins/db_phpwiki13
-         --------------------
-         The original ewiki database table structure was compatible with the
-         one used in PhpWiki version 1.2.x, however it turned out that the
-         PhpWiki project has yet not stopped completely and choosed to
-         implement a more relational table structure with version 1.3
-
-         This plugin is only meant for transition __from__ PhpWiki v1.3.x to
-         ewiki, it should NOT be used to connect ewiki with PhpWiki forever.
-
-         Write access is disabled per default, but available. However it is
-         probably not fully compatible with the database abstraction and usage
-         of PhpWiki, so it is likely to corrupt your database if you use it
-         for a longer period of time. This warning is mainly because the
-         'latestmajor', 'latestminor and 'minor_edit' rows in the PhpWiki
-         database, because such stuff is not used by ewiki at all. ewiki also
-         tries to put some of the pages meta data into places where it could
-         eventually confuse PhpWiki.
-         Write access is however done nearly as safe as within the ewiki
-         database access layer (INSERT statement to not overwrite existing
-         entries).
-
-         Again: this plugin is in no way meant to encourage you to keep your
-         old PhpWiki database!  ;>
-         Please see also "tools/ewiki_convertdb.php".
-
-         If you temporarily enable this plugin within the default/example
-         "config.php" or the "tools/ewiki_tools_config.php" you can also
-         utilize the very powerful 'ewikictl' cmdline utility to generate a
-         copy of your PhpWiki database in one of the backup formats suitable
-         for later use with ewiki.
-
-
-
-         plugins/binary_store
-         ��������������������
-         Is a hack into the ewiki core, which will store binary/uploaded
-         files outside of the default ewiki database (as plain files in a
-         data directory).
-
-         Please also see the documentation on top of the plugin file.
-
-         Per default ewiki can store "binary" entries beside ordinary text
-         pages in the database. If you'd like to keep uploaded files/images
-         out of the db, then this plugin/hack will help. It intercepts ewiki
-         and saves uploaded data into a plain data file, and instead creates
-         a "binary symlink" in the database for it (just the binary meta
-         data will get stored, with a hint on where to later access the plain
-         data file).
-
-         This may sometimes be a speed enhancement and reduces size of the
-         database, however it has the drawback that only the main ewiki
-         script can handle this transparently and all admin tools/ fail to
-         deal with the stored plain data files (no backup support and so on).
-
-         By setting the EWIKI_DB_STORE_URL constant correctly (corresponding
-         to your wiki setup and where you store the data files, compare with
-         EWIKI_DB_STORE_DIRECTORY) you can make ewiki create URLs directly
-         to where the stored plain data files reside (they do not contain
-         ewiki database meta data, and thus could be accessed directly by
-         http clients/browsers).
-
-         Please be sure to configure this plugin by setting _DB_STORE_DIRECTORY
-         to something more useful than "/tmp", so your uploaded files will
-         still be there after a reboot.
-
-
-
-core enhancements
-�����������������
-Some really cool features are put into extension plugins, and the most
-important, recommended and most often used ones are listed in this section:
-
-
-
-         plugins/patchsaving
-         �������������������
-         If two users concurrently edit a page, then only the first saving
-         attempt will succeed; which the second user is told by the "This
-         page version was already saved" failure message.
-
-         This plugin works around this by passing the contents of the
-         concurrent versions through the 'diff' and 'patch' utilities, which
-         often merges the two different modifications in a new version that
-         can be saved into the database so there is no need for the failure
-         message.
-
-
-
-         plugins/notify
-         ��������������
-         This plugin enables users to get notified, whenever someone changes
-         a watched page. To enable 'watching' one must just place an email
-         address into the page with following syntax:
-            [notify:mail@example.com]
-
-         This bracket will be invisible, when a page is viewed, so it can be
-         placed anywhere. The notifications will be sent to this address
-         as long as the tag is there.
-
-         If one wishes to receive notification messages in another language,
-         this just needs to be added after a comma or semicolon, like:
-            [notify:pop3@example.net,de]
-         This is often only necessary for the generic TLDs .com .org .net,
-         or where language code and TLD differ.
-
-
-
-         plugins/jump
-         ������������
-         Introduces magic markup for page redirection (switching to another
-         page). Possible notations are:
-
-           [jump:OtherPage]
-           [goto:SwitchToThere]
-
-         The EWIKI_JUMP_HTTP setting tells this plugin to send a Location:
-         and redirect HTTP status when encountering a page [jump:]. Else
-         this plugin will show up the JumpDestination page without notifying
-         the browser about it.
-
-         It is also possible to perform InterWiki jumps, just be using the
-         common InterWikiMoniker: syntax.  [jump:WardsWiki:WelcomeVisitors]
-
-
-
-         plugins/email_protect
-         ���������������������
-         This plugin 'ciphers' all valid email addresses inside a WikiPage
-         for protection against automated spambots. Additionally it
-         throws fake/trap email addresses to spam spammers databases :>
-
-         It ist not integrated into the core script, because some people
-         may prefer to have email addresses visible (intranet usage).
-         However it is HIGHLY RECOMMENDED to enable this plugin. Despite
-         its file size it is rather fast.
-
-
-
-         plugins/spages (StaticPages)
-         ����������������������������
-         The "StaticPages"-plugin allows ewiki to access files in a given
-         directory. If these files are in text format, ewiki will parse them
-         as WikiPages. But if you put files with an extension .html, .htm or
-         .php into one of the specified StaticPages` directories they will
-         be returned as is from ewiki_page() - the .php files will of course
-         get executed and their output is returned.
-
-         The basename of the files in the directories to be used by spages
-         will make up the WikiPageName with which the files will be
-         accessible.
-
-         Any given directory (see on top of plugins/spages.php) will be read
-         recursively. So files in a subdirectory will get available as a
-         page with a name like "subdir/FileName". If the name of the
-         subdirectory contains a dot at the end, then the slash will be left
-         out in favour of a dot: resulted in "subdir.FileName" for example.
-
-         PHP scripts in a spages directory however have some restrictions,
-         like not being able to return headers() or to access most global
-         variables without use of the $GLOBALS[] syntax. If you rely on
-         such functionality you should rather write an ordinary page plugin
-         (which in fact is often much easier).
-         From the output of .html and .php scripts only the parts between
-         <body> and </body> will be returned as page content. Any <html>
-         head area will get stripped, as it would lead to completely invalid
-         html code if it was returned as is by ewiki_page() into yoursite.
-
-         To let this plugin load pages from directories, you should either
-         edit the array on top of this plugin file, or define() the
-         EWIKI_SPAGES_DIR (before! including the spages.php script), which
-         then also would be read in.
-         Alternatively you could call the ewiki_init_spages() function
-         yourself to register a directory for processing (after! loading the
-         spages plugin):
-
-           include("plugins/spages.php");
-           ewiki_init_spages("/var/www/wiki/staticpages/");
-
-         You could also use this plugin to inline the ewiki database tools/
-         as virtual pages.
-
-         Btw, it is very easy to make a StaticPage from a ewiki page plugin
-         and vice versa. Please also note the tools/mkpageplugin which can
-         convert anything used as StaticPage into a page plugin for easy
-         including() with other ewiki plugins.
-
-
-
-         plugins/pluginloader
-         ��������������������
-         The pluginloader plugin automatically loads ["action"] and ["page"]
-         plugins, whenever necessary. This allows to skip dozens of
-         include() statements within the config.php (which most always just
-         slow down script startup). It is configured via a static array,
-         which defines which plugins are allowed to be automatically invoked
-         on request.
-         Detailed explanaition is available within this script.
-
-
-
-         plugins/init
-         ������������
-         Handles database initialization using the distributed standard Wiki
-         files from './init-pages'. Unlike the ewiki-builtin function to
-         perform that task, this plugin first outputs informational notes
-         to the user, prior database initialization.
-         Once you have your SQL or ./files database initialized, you should
-         disable this plugin (it then isn't be required anymore).
-
-
-
-         plugins/feature/appendonly
-         ��������������������������
-         This plugin (a family of) implements the actual support for the
-         _DB_F_APPENDONLY page flag. When the flag is set, and this plugin
-         active, then ordinary users can further only append text to the
-         page, and won't be able to edit the earlier written parts of it. So
-         this implements a much softer approach than the _READONLY page
-         flag.
-
-         Also this plugin comes in three flavours, but you can often only
-         load one of them:
-
-         "appendonly" - Really allows just additions to be made to the page,
-                        each new separated by a horizontal bar.
-
-         "appendwrite" - Allows to insert a page separator, which protects
-                        the upper part from getting edited by ordinary
-                        users. Everything below a horizontal bar (denoted
-                        by at least 16 minus signs) or a double horizontal
-                        bar remains editable by all users.
-                        This plugin activates only if the _APPENDONLY and
-                        _WRITEABLE flag is set.
-
-         "appendcomments" - stores page additions in an separate database
-                        entry marked with _DB_F_PART, but allows this part
-                        to get edited as whole (like "appendwrite" plugin).
-
-         The last one is probably not very useful, as it generates some
-         overhead and in fact is a collection of various workarounds to
-         accomplish the desired functionality (so it may prove little
-         lifetime).
-
-
-
-         plugins/feature/imgresize_gd
-         ����������������������������
-         Was extracted from the core during the R1.00f development releases.
-         Automatically rescales uploaded images, if they are larger than
-         EWIKI_IMAGE_MAXSIZE.
-         As it uses the gd2 library, there must be support for this in your
-         PHP binary. There are a lot of problems on Win32 systems, and also
-         some Linux binarys (-dev ones) crash constantly if you load this
-         plugin but don't have the libgd activated or available.
-
-
-
-         plugins/feature/imgresize_magick
-         ��������������������������������
-         Rescales uploaded images via the ImageMagick utility "mogrify",
-         which is usually only available on UNIX systems. It should however
-         be fairly simple to make this plugin work with some other image
-         manipulation tool (at least with Linux).
-
-
-
-         plugins/feature/spellcheck
-         ��������������������������
-         Turns the [preview] button below every page edit box into a
-         spellcheck function.
-
-         You need a working 'aspell' or 'ispell' on your system, or the
-         PHP internal aspell functions - as it is rather slow it only shows
-         up the first 20 errors on a page
-
-
-
-action/ plugins
-���������������
-Action plugins are those, that can be activated ON individual pages. And
-usually are shown as links below a page. The ewiki-builtin EditThisPage,
-BackLinks and PageInfo are ["action"] plugins for example.
-
-
-
-         plugins/action/diff
-         �������������������
-         Enables to view the differences between two saved page versions
-         (what changes somebody has done to the page), but it is rather
-         stupid and guessworking in how it does so.
-
-
-
-         plugins/action/translation
-         ��������������������������
-         This plugin adds a link to the GoogleLanguageTools or AltaVista
-         BabelFish, which then remotely translated the current page into
-         the users preferred language. It has support to detect the lang
-         of the current pages content, to redirect to the right service.
-
-
-
-         plugins/like_pages
-         ������������������
-         LikePages is a search feature of WardsWiki, which scans for
-         WikiPages whose name is somewhat similar to the one of the current
-         page (the pagename must be made up of the same WikiWordParts so a
-         page gets listed).
-
-
-
-         plugins/action/raw
-         ������������������
-         Can be used to download the unrendered Wiki source of a page.
-
-
-
-plugins related to hypertext links
-����������������������������������
-The linking/ plugin group deals with how links inside the Wiki will look and
-work. Some of them are would also fall the "core enhancements" group, while
-others are just handy or for link beatification.
-
-
-
-         plugins/linking/tcn
-         �������������������
-         ewiki evaluates the Accept-Language HTTP header modern browser
-         send with each request. This plugin now automatically brings up
-         a variant of the current requested page if it finds a match in
-         the database. To make it work, you need to create pages with
-         language suffixes in their names like:
-           ThisPage.es
-           ThisPage
-           ThisPage.de
-         or
-           OtherPage
-           OtherPage*nl
-
-         Note, that there can always be one page in each name group without
-         that suffix. This page then will be assumed to be in the default
-         language set by EWIKI_DEFAULT_LANG.
-
-         If multiple page versions are available, then a list will be
-         printed above the page title to allow users to override the
-         prefered language guess of this plugin.
-
-
-
-         plugins/linking/plural
-         ����������������������
-         This plugin tries to alias plural and singular page names against
-         each other. That is, "WikiPage" will be shown, whenever "WikiPages"
-         was requested (and vice versa).
-
-
-
-         plugins/linking/autolinking
-         ���������������������������
-         The autolinking plugin allows to have automatic links inside the
-         Wiki for words which exist in the database, but are no real
-         WikiWords. This is made possible by the companion StaticPage
-         admin plugin "spages/Admin/PrepareAutolinking", which must be
-         invoked from time to time to update the db cache entry, which the
-         autolinking plugin utilizes.
-
-
-
-         plugins/linking/link_css
-         ������������������������
-         Adds CSS classes to the links generated by the Wiki page formatting
-         kernel, which then allow you to colorize (or to otherwise change
-         appearance of links) via a style sheet.
-
-
-
-         plugins/linking/link_icons
-         ��������������������������
-         The link_icons plugin prepends icon <img>s before registered link
-         types, like the link_css plugin adds class="..." attributes to the
-         html formatted links in every page.
-
-
-
-         plugins/linking/link_target_blank
-         ���������������������������������
-         Adds 'target="blank"' to link tags <a>, which will result in most
-         browsers opening pages in a new window.
-
-
-
-         plugins/linking/linkexcerpts
-         ����������������������������
-         Adds a short preview text (with <a title="...">) to every link of
-         a page. This however requires multiple additonal database accesses
-         (slower) and could enlarge delivered .html page sizes dramatically.
-
-
-
-         plugins/linking/linkdatabase
-         ����������������������������
-         Is a page plugin, which provides a nearly compliant implementation
-         of the page and link structure export function known from the UseMod
-         WikiWare and MeatBall:LinkDatabase. This is useful for contributing
-         to the upcoming InterWikiBatabase and BorgWiki.
-
-
-
-         plugins/linking/instanturls
-         ���������������������������
-         Allows to specify URL abbreviations on one or more summary pages.
-         This can be done using a table or a definition list to assign
-         each URL a title, which then can be used on other pages as square
-         bracket reference.
-
-         The 'instanturl_find' plugin in addition allows to use the [find:]
-         moniker to perform partial searches in the list of URL
-         abbreviations, but also in the list of interwiki monikers. As
-         fallback it searches for matching page names or redirects to
-         Google.
-
-
-
-         plugins/linking/titlefix
-         ������������������������
-         Allows to swap [title|PageName] in square brackers [Page|title],
-         because that can easily be detected, if the page already exists.
-
-
-
-         plugins/interwiki/intermap
-         ��������������������������
-         This plugin (in fact only a general include) extends the list of
-         known InterWiki: prefixes with a more complete set merged from
-         MoinMoin and PhpWiki's interwiki.map.  The links are rather
-         untested to work at the moment.
-
-
-
-
-appearance/ tweaks
-������������������
-There are various plugin hooks within ewiki, which allow to mangle text
-strings and data immediately before it would be returned as output.
-
-
-
-         plugins/appearance/listpages_br
-         �������������������������������
-         This plugin will produce <br> separated lists (for SearchPages,
-         PageIndex, MostVisitedPages, and so on).
-
-
-
-         plugins/appearance/listpages_ul
-         �������������������������������
-         Creates real <ul> lists (WordIndex, CreatedPages, ...) instead of
-         the &middot; ones, ewiki core would usually return.
-
-
-
-         plugins/listpages_tbl
-         ���������������������
-         The listpages_tbl plugin outputs a table instead of the ordinary
-         page lists (PageIndex, UpdatedPages, ...). You need to edit its
-         source to set colours to fit your site layout.
-
-
-
-         plugins/appearance/fancy_list_dict
-         ����������������������������������
-         The WordIndex and PageIndex plugins (unlike the other page list
-         returning ones like SearchPages and UpdatedPages) can utlize this
-         plugin to output a pretty dictionary like listing of pages.
-
-
-
-         plugins/appearance/title_calendar
-         ���������������������������������
-         Changes the titles of calendar plugin entries in the database into
-         a more readable format for page lists (PageIndex, PowerSearch,
-         UpdatedPages, and so on).
-
-
-
-page plugins
-������������
-The page plugins provide additional "generated/internal" pages, which have
-a standard WikiWordPageName and can thus be referenced easily from within
-ordingary WikiPages. But they are of course uneditable (because their
-content is 'hardcoded' as PHP code) and most action/ plugins cannot perform
-any function on them.
-
-With the rise of the StaticPages plugin, the page plugins are almost
-outdated, because all their code could now be extracted into a StaticPage
-file, so their code had to be loaded only on request (instead of including()
-them regardless if they're needed or not, how it currently is done).
-
-
-
-         plugins/page/powersearch
-         ������������������������
-         This plugins provides a (probably) better search function
-         with the default page name "PowerSearch". It tries to guess
-         a value, which tells something about how good a page matches
-         the searched words and orders the found pages list by this
-         (possibly not very useful) value. It prints the top 10 results
-         more verbose.
-
-
-
-         plugins/page/pageindex
-         ����������������������
-         Lists all pages found in the database alphabetically.
-
-
-
-         plugins/page/wordindex
-         ����������������������
-         Lists the word parts of all wiki pages, but requires the
-         powersearch plugin to be present, because the result is redirected
-         to there as usually many of the listed words belong to multiple
-         page names.
-
-
-
-         plugins/page/imagegallery
-         �������������������������
-         Outputs a page containing all cached/uploaded images. The
-         images are currently not rescaled to fit on the page; this
-         work is left to the browser.
-         Needs enhancement.
-
-
-
-         plugins/page/aboutplugins
-         �������������������������
-         Lists all registered plugins (mpi, page, action, task/core). The
-         name refers to the "about:plugins" page present in recent browsers.
-
-
-
-         plugins/page/orphanedpages
-         ��������������������������
-         Shows up a list of pages, that exist, but are not linked from any
-         other pages. These is often also called dead pages.
-
-         Note that this plugin does not take into account, if any page
-         can be reached from the frontpage - such a hypertext tree test
-         would require much more work than realized in here.
-
-
-
-         plugins/page/wantedpages
-         ������������������������
-         Returns a list of pages to which QuestionMarkLinks? currently
-         exist.
-
-
-
-         plugins/page/since_updates
-         ��������������������������
-         Provides a list of pages with actualization times.
-
-
-
-         plugins/page/textupload
-         �����������������������
-         The virtual TextUpload plugin allows to insert new WikiPages by
-         uploading text files. It can convert from various formats into Wiki
-         content, including some proprietary Office file formats, if one of
-         the possibile filters is avaiable (Unix style file piping).
-         It also can extract multiple files from a Tarball or ZIP archive
-         if the according utilities are available (even on DOS/Win systems).
-
-
-
-         plugins/page/wikidump
-         ���������������������
-         Allows to download a gzipped tarball containing all readily
-         rendered pages as .html files and also images.
-
-
-
-         plugins/page/interwikimap
-         �������������������������
-         Shows up the currently in use InterWikiMap.
-
-
-
-         plugins/page/hitcounter
-         �����������������������
-         Sums up the individual {hits} count of all pages and returns the
-         overall count.
-
-
-
-         plugins/page/scandisk
-         ���������������������
-         Presents an unserious statistic.
-
-
-
-         plugins/page/wikinews
-         ���������������������
-         Returns the most recently added pages in an overview, that
-         incorporates a small fragment from the content of those newly added
-         pages.
-
-
-
-         plugins/page/wikiuserlogin
-         ��������������������������
-         Allows to set a free-form username, which then would be stored into
-         the database whenever a page was edited.
-
-
-
-         plugins/page/randompage
-         �����������������������
-         Shows up a randomly choosen page from the database.
-
-
-
-         plugins/page/fortune
-         ��������������������
-         Calls the Unix /usr/games/fortune program and prints out returned
-         content.
-
-
-
-         plugins/page/ewikilog
-         ���������������������
-         Allows to review the content of the 'ewiki.log' file.
-
-
-
-         plugins/page/phpinfo
-         ��������������������
-         Shows the settings of your PHP interpreter.
-
-
-
-         plugins/page/README
-         �������������������
-         Can parse the distributed README file and make a hypertext
-         presentation from it, for easier reading of the Wiki documentation.
-         It is printed in <pre> text, but with WikiLinking enabled (which
-         however is rarely used in the README file). It additionally
-         presents the README.de and README.auth files.
-
-
-
-         plugins/page/wikiuserlogin
-         ��������������������������
-         Allows to post a username (Note: this one does not do any sort of
-         real authentication), which is saved in the http client as cookie,
-         but can afterwards be evaluated as $ewiki_author, so the according
-         field in the database entries contains a bit more than just
-         the IP address when a changed page gets saved.
-
-
-
-markup plugins
-��������������
-The ewiki rendering core is rather fast and consolidated, that was the goal.
-However if you ever happen to need more functionality, this can be added
-easily by the use of plugins.
-
-Several are already available to emulate the WikiMarkup of other commonly
-used WikiWare.
-
-
-
-         Other WikiWares markup
-         ����������������������
-         The WikiWorld still lacks a unified markup (and thus also the
-         interchangeablity that made html THE standard it today is), and
-         while ewiki usues nearly MeatBall:WikiMarkupStandard, you may want
-         to reuse existing pages from another Wiki.
-
-         Currently we provide emulation for:
-         * PhpWiki
-         * sfWiki
-         * miki
-         * bbcode (BulletinBoard, not a Wiki)
-
-         But please see the individual files on which (additional) markup
-         they introduce.
-
-         These plugins on occasion only register their markup within
-         $ewiki_config["wm_*"] settings, but often just perfrom
-         pre-conversion of foreign markup by utilizing the ["format_src"]
-         plugin hook (they then pre-convert page content to use ewiki
-         markup rules before the ewiki_format() kernel performs
-         transformation).
-
-
-
-         plugins/markup/css
-         ������������������
-         CSS markup allows you to assign visual styles (or semantic CSS
-         class names) to a block of text (paragraph) or to pieces of text.
-         @@ is used to start a styled area. The @@ must be immediately
-         followed by either a CSS class name (without the dot) or with
-         CSS instructions without any whitespaces.
-         The following text (after the @@, the class name and a space) will
-         then be assigned the class until a (possible) next @@ without
-         attached classname or style definition.
-
-         If the @@ occurs at the start of a paragraph it will enclose it
-         in a <div> with the according style assignment, otherwise (in the
-         text) a @@ will become a <span>.
-
-         See also the explanation and examples in this plugins` comments.
-
-
-
-         plugins/markup/css_singleat
-         ���������������������������
-         This plugin allows you (like the markup_css plugin) to attach CSS
-         classes to a paragraph of text with just a single @ character:
-
-         @JAVADOCLIKE  paragraphs text...
-         ... ... ... .... ... ... ... ...
-
-
-
-         plugins/markup/footnotes
-         ������������������������
-         Introduces the ability to generate footnotes by placing an
-         explanation into double curly brackets {{footnote text}}.
-
-         You should activate this only if you really need it. Sometimes this
-         may be useful, but it is rather bad wiki style; because if someone
-         would like to explain something in more detail he should create a
-         WikiLink to a new page.  So this should be used for very short
-         explanations, say incomplete sentences or a book reference and
-         other things where it really seems bloat to create a new page.
-
-         USE THIS RARELY or better not at all!
-         (this is a feature copied from MS` EvilWiki)
-
-
-
-         plugins/markup/asciitbl
-         �����������������������
-         Allows to use ASCII-Art tables as outputed by lynx and other
-         console programs inside of WikiPages, which eases life, when
-         dealing with multiline table cell content.
-
-
-
-         plugins/markup_complextbl
-         �������������������������
-         ewiki allows you to use tables with the || | characters in the wiki
-         page source. However the html code for the table layout is
-         hardcoded and cannot be changed on a per-page basis.
-         This plugin intercepts the wiki source formation process to allow
-         you to specify html tag attributes inside a table definition like:
-
-         |{ border=0 cellspacing=10}  here is  | the table | content |
-         | 2nd line | 2nd line |{ rowspan=2}  fills two table rows |
-         |{ colspan=2}  3rd line |
-
-         Note, the opening "{" must follow the "|" character immediately.
-
-         This code was provided by Hans B Pufal.
-
-         It may be a security risk to include it per default, as this allows
-         to add SomethingScript references as well.
-
-
-
-         plugins/markup/htmltbl
-         ����������������������
-         Provides a block escape to use the standard html <table> code
-         instead of the limited pipe syntax provided by ewiki. It will parse
-         for <tr> and <td> tags and strip any not registered attributes to
-         defend against harm that could be caused by EvilScript additions.
-
-         The common html <table> syntax then allows easily to include
-         multiline table cell content, which is nearly impossible (to edit)
-         for the "|...|..|" table syntax.
-
-
-
-         plugins/markup_rescuehtml
-         �������������������������
-         Allows to use some 'safe' HTML tags within the WikiPage. This
-         plugin replaces the previous EWIKI_RESCUE_HTML constant.
-
-         Note that those 'safe' HTML tags may also lead to some confusion,
-         especially if you have a wiki about HTML, because then you cannot
-         write text about the <STRONG> tag because it will actually always
-         be interpolated as itself and not as the text string "<STRONG>".
-
-
-
-         plugins/contrib/rendering_phpwiki12
-         -----------------------------------
-         This is the rendering kernel of PhpWiki 1.2 which was made compatible
-         with the ewiki function set.
-         It may be useful to reuse old WikiPages, but anyhow most of its
-         features are supported by the standard ewiki rendering kernel, so
-         this is just a fun and proof-of-concept plugin.
-         ..................................................................
-         : The code of this module is covered by the GPL license, as it   :
-         : was copied verbatim from the PhpWiki project.                  :
-         ������������������������������������������������������������������
-
-
-
-         plugins/rendering_null
-         ----------------------
-         If someone would like to use ewiki for a personal homepage, but
-         prefers HTML over WikiSyntax, then this rendering core replacement
-         may suit his needs. It allows HTML to be used, but still renders
-         WikiWords into valid hyperlinks (a few other features from the
-         original ewiki_format function are also supported, but you can
-         strip even those).
-
-
-
-mpi
-���
-The so called "mpi" plugins can be embedded into pages, and produce their
-output there. They are loaded on demand (only if it appears that they should
-be invoked), but it is possible to include() the individual files regardless
-if they would be used or not.
-
-In order to have the mpi plugins available, you must however first load the
-mpi dispatcher:
-   include("plugins/mpi/mpi.php");
-Which then takes care of the markup and loading of the requested plugins.
-
-The syntax for calling a mpi plugin is (write this inside of a WikiPage,
-when editing it):
-
-   <?plugin PluginName  arg="..."  arg2=DDD ?>
-
-Where args are often optional or could even be written without the 'argname='
-if only one was required. The name of the mpi plugin is case-insensitive
-here.
-
-It is often possible to invoke mpi plugins like ["page"] plugins, if you
-create a link inside of the page using the syntax <?plugin-link PluginName ?>
-
-
-
-         mpi_backlinks
-         �������������
-         Prints a list of BackLinks to the current page (the same as when
-         clicking on the title of a page or on the BackLinks action link).
-         <?plugin BackLinks ?>
-         <?plugin BackLinks page=ForThatPage ?>
-
-
-
-         mpi_multimedia
-         ��������������
-         Allows to <embed> multimedia files into a page.
-
-
-
-         mpi_syndicate
-         �������������
-         Embeds remote RSS feeds (abbrv. for "ReallySimpleSyndication" or
-         "RichSiteSummary") into the current page. It caches the fetched
-         data for quite some time in a pre-parsed _BINARY database entry.
-
-
-
-         mpi_insert
-         ����������
-         Allows to insert another readily rendered WikiPage into the current
-         one, usually inside of a <table border="1">.
-
-
-
-         mpi_localsitemap
-         ����������������
-         Is a mix of BackLinks and LinkTree features, and prints the tree of
-         pages backreferencing to the current one.
-
-
-
-visual extensions
-�����������������
-The hook following plugins utilize is called "append-view". It allows to put
-content below a pages contents (after the action links).
-
-
-
-         plugins/aview/backlinks
-         �����������������������
-         Adds the list of BackLinks (references from others to the current
-         page) to the current page below it (this list is also available,
-         when a user clicks on the title of a page).
-
-
-
-         plugins/aview/linktree
-         ����������������������
-         Prints the possible (shortest) paths to the FrontPage (determined
-         by the EWIKI_PAGE_INDEX constant) starting from the current one
-         below. Calculations and database access required by this plugin
-         often means a slowdown up to 2 seconds before the page is readily
-         rendered.
-
-
-
-         plugins/aview/toc
-         �����������������
-         Analyzes a pages headlines and generates a list of contents box
-         from it, which is inserted as float box on top of it then. Use the
-         following CSS selector to style it:
-
-            .wiki .page-toc {
-               ...
-            }
-
-
-
-         plugins/aview/posts
-         �������������������
-         Allows to add separate comment pages, which will then always be
-         displayed below the current one, but remain editable as standalone
-         pages. (So the page they are appended to could be marked as
-         _READONLY).
-
-
-
-         plugins/aview/threads
-         ���������������������
-         Allows to group the pages created using the "posts" plugin into
-         threads.
-
-
-
-         plugins/aview/subpages
-         ����������������������
-         Adds the list of pages, which appear to be SubPages of the current
-         one, below it.
-
-
-
-         plugins/aview/downloads
-         �����������������������
-         Shows the uploaded files, which appear to belong to the current
-         page (individual pages can be treated as upload sections).
-
-
-
-         plugins/aview/imgappend
-         �����������������������
-         Prints an image uploading box below every page, which allows to
-         append an image without prior clicking EditThisPage (the image
-         will be automatically appended to the bottom of the page).
-
-
-
-         plugins/aview/piclogocntrl
-         ��������������������������
-         This plugin allows users to select a logo graphic which will be
-         made available for use in the site template as
-         $ewiki_config["page_logo"]. Configureable through the internal
-         image list array.
-
-
-
-         plugins/aview/aedit_pageimage
-         �����������������������������
-         This plugin allows users to select a page image graphic, and is a
-         mix of the aview/piclogocntrl and page/imagegallery plugins.
-
-
-
-         plugins/aview/control2
-         ����������������������
-         Shows examplarily how to replace the standard "action-links" box,
-         and adds it on top of the page (including the page title).
-
-
-
-         plugins/aview/aedit_authorname
-         ������������������������������
-         Adds a text <input> field below the edit/ box, which allows to
-         set the AuthorName which then will get stored, when the page is
-         saved. This name is then also stored client-side as cookie for
-         at least 45 minutes.
-
-         Before using this plugin, you must consider, that it eventually
-         allows to override the correct username that ProtectedMode plugins
-         already provided. And there is no way to prevent users from using
-         faked names (because this plugin cannot check if a username was
-         already 'registered' and thus can't initiate a password query).
-
-
-
-         plugins/aview/aedit_deletebutton.js
-         �����������������������������������
-         Adds a JavsScript snippet to allow users to quickly mark a page
-         for deleterequest, by inserting the link to "DeleteMe" into the
-         contents, when editing it.
-
-
-
-page filters
-������������
-A few plugin hooks exist to completely rework generate page output. These
-are often used to insert content into the otherwise readily rendered .html
-pages (some of the above aview plugins do so, too).
-
-
-
-         plugins/filter/f_fixhtml
-         ������������������������
-         Is a minimal tag balancer (a highly simplified HTML tidy) and can
-         work around various html code problems that the ewiki_format()
-         html rendering function has. It is for example specialized to
-         correct broken html that resulted from WikiMarkupAbuse as for
-         example nesting text style attributes like this:  __''text__''
-
-
-
-         plugins/filter/search_highlight
-         �������������������������������
-         Evaluates the Referer header sent by many browsers to detect if
-         a visitor came from a search engine (even the internal PowerSearch
-         or SearchPages ones) and highlights the searched words in the
-         current pages body (using CSS).
-
-
-
-         plugins/filter/fun_chef
-         �����������������������
-         Borg, Borg, Borg!
-
-
-
-         plugins/filter/fun_upsidedown
-         �����������������������������
-         Transforms a pages content using letter transformation to make
-         them readibly from upside down with certain fonts. This however
-         is a bit tricky for html pages and thus will always wrongly
-         intermix sentence order.
-
-
-
-         plugins/filter/fun_wella
-         ������������������������
-         Adds a little CSS to make text swirrling on both sides.
-
-
-
-         plugins/filter/fun_screamomatic
-         �������������������������������
-         Detects if someone entered a FULL LINE OF YELLING into a page
-         when editing it, and then sets a persistent cookie. That cookie
-         will result in all pages contents to be converted into uppercase
-         characters.
-
-
-
-         plugins/filter/f_msiepng
-         ������������������������
-         Converts .png <img> references in the WhateverX code required by
-         all current IE versions to display .png images according to the
-         specification (which currently only an IE external plugin can handle
-         correctly).
-
-
-
-BloatWiki extensions
-��������������������
-ewiki slowly evolves into a well-bloated portal software, and some plugins
-already extend it far beyond the scope of an ordinary Wiki.
-
-
-
-         plugins/module/calendar
-         �����������������������
-         The calendar plugin enables you to add an editable calendar to
-         every WikiPage. It is not a fully integral part of ewiki, and needs
-         additional calls from yoursite.php to integrate nicely into your
-         sites layout.
-
-         You even don't need to allow a calendar to be added to every page,
-         you can just include the plugin file and use the _one_ page called
-         "Calendar" or "YearCalendar", where everybody can make additions.
-
-         The coolest about this plugin is, that it nicely integrates into
-         the common WikiNameSpace.
-
-         Just include("plugins/calendar.php"); so it gets available.
-         In yoursite.php integrate it as follows:
-
-         <?php
-             ...
-
-             echo ewiki_page();    // print current pages content, as usual
-
-             ...
-
-             if (  calendar_exists()  )
-             {
-                ...
-                echo calendar();      // print calendar for current page
-             }
-             else {
-                ...                   // else only a link to the cal. page
-                echo "<a href=\"?id=calendar/$ewiki_id\">ShowCalendar</a>";
-             }
-
-         ?>
-
-         The calendar() function call emits the html for the calendar of the
-         currently viewed page (see ewiki_page() call).
-
-         The function calendar_exists() only checks for already existing
-         event entries in the calendar, so the calendar won't show up, if
-         there isn't yet anything inside (so only the "ShowCalendar" link at
-         the bottom of the page will link to the still empty calendar). You
-         can of course leave out this function call or alternatively call
-         it with calendar_exists($always=true) if you want the calendar to
-         appear most of the time / or for all pages.
-
-         Please note the "fragments/calendar.css" file, which illustrates
-         how to tweak layout and look of the generated calendars.
-
-         This plugin was contributed by Carsten Senf (originally
-         implemented for good old PhpWiki).
-
-
-
-         plugins/module/downloads
-         ������������������������
-         From the very beginning the ewiki core supported uploading image
-         files into the database. As time and discussions went on, there
-         came the idea to allow arbitrary binary files to be inserted too.
-
-         The old EWIKI_ALLOW_BINARY way should now be avoided, because the
-         download plugin adds more functionality and more features, and is
-         easier and more intuitive to use.
-
-         It adds the virtual page FileUpload to insert a file into the
-         database, and the page FileDownload, which lists all available and
-         uploaded binary files from the db.
-
-         Please note, that due to the use of the database interface, the
-         file sizes are usually limited to 1-2M (depending on PHP and MySQL
-         settings), so there may still be some need to reimplement this,
-         using the antique world-writable incoming/ directory method.
-
-         The mime_magic plugin should be used together with this one, and
-         you should change the icon file names (use the ones from the Apache
-         distribution for example).
-
-         (It may also be a good idea to run a secondary database if you
-          use it. Have a look at fragments/binary.php, and set up a
-          secondary ewiki database using it and the db_flat_files plugin.
-          This is useful, because you then can more easily delete uploaded
-          files as they don't get saved into a SQL database.)
-
-         Different download sections can be defined. The "*" merges all
-         allowed sections into one list again, and the "**" section even
-         lists the files attached to pages.
-
-         The page attachment link (to append download functionality to each
-         page) can be revoked by unsetting the $ewiki_plugins["action"]
-         line in the downloads.php file; so only the default sections are
-         accepted (and page names rejected).
-
-         The plugins/downloads_view.php brings up the list of uploaded
-         attachments below each page (if existing). It works rather fast
-         due to an improved database search call, and should therefore be
-         activated whenever you use the per-page attachments feature.
-
-         See also plugins/binary_store.php to keep your SQL database small,
-         but note its limitations.
-
-
-
-         plugins/module/tour
-         �������������������
-         Provides a shortened view of the current page and all linked ones
-         (even the backlinked ones). This eases navigation and page content
-         "scanning" (getting a quick overview).
-
-
-
-
-utility code
-������������
-The plugins/lib/ directory contains code and functionality, which often is
-required by some of the other plugins (they depend on it then), but which
-was too specialized to get part of the ewiki.php core script.
-
-Other extensions in the lib/ subdir didn't match in any of the other plugin
-categories.
-
-
-
-         plugins/lib/cache
-         �����������������
-         This plugin stores readily rendered Wiki page content (already in
-         html format) either into a dedicated directory, or into specially
-         named _BINARY wiki database entries. This then allows to satisfy
-         further requests to a page with the saved content.
-
-         You should set EWIKI_CACHE_DIR to a useful value (a so called
-         "chmod 777" directory, so your webserver process can write into it),
-         or alternatively unset this constant and instead define
-         EWIKI_CACHE_DB so cache entries get stored into the ewiki database.
-         The _CACHE_DB constant is just prepended to the name of the current
-         page to get the name for the database entry for the cache data.
-
-
-
-         plugins/lib/speed
-         �����������������
-         Evaluates the "conditional HTTP request headers" to tell a client
-         if it could reuse its existing cache entry for a requested page.
-         This is believed to reduce traffic and also speed up some
-         applications. However it is still rather untested and could anyhow
-         lead to some problems (never updating pages for some broken
-         browsers). The evaluated headers include "If-Unmodified-Since:"
-         which corresponds to the "Last-Modified:" answer header ewiki
-         always sends.
-
-         However this will only work, if you disable EWIKI_NOCACHE - but
-         then some browsers will never see updated pages, if they were
-         misconfigured to not refetch pages, once they got into the internal
-         browser cache. (But on the other hand, that is users fault ;)
-
-
-
-         plugins/lib/mime_magic
-         ����������������������
-         Implements the mime_magic feature absent from some (older and
-         misconfigured current) PHP interpreter versions (check your phpinfo
-         and /etc/mime.types).
-
-         This is recommended in conjunction with the downloads plugin to
-         store correct mime type data, for proper use of icons beside
-         download links. Also the correct Content-Type header should always
-         be available, when binary content is delivered.
-         ..................................................................
-         : The data of this plugin is covered by the GNU General Public   :
-         : License.  :
-         ������������������������������������������������������������������
-
-
-
-         plugins/lib/navbar
-         ������������������
-         Provides a configureable menu for the contents of your Wiki for
-         inclusion in your site template, which changes depending on which
-         site area you're currently inside (determined partially by
-         the linktree plugin).
-
-
-
-         plugins/lib/protmode
-         ��������������������
-         Is an extension package (currently in development) with various
-         helper functions for ProtectedMode plugins. Especailly useful in
-         conjunction with the auth-liveuser framework.
-
-
-
-         plugins/lib/save_storevars
-         ��������������������������
-         An example script on how to store additional vars into page entries
-         of the ewiki database (session like).
-
-
-
-admin/ plugins
-��������������
-Collects plugins for ewiki / database administration. Often these depend
-upon $ewiki_ring==0 (superuser authentication level in EWIKI_PROTECTED_MODE),
-otherwise refuse to work for security reasons (some functions are however
-available to moderators too, ring level 1).
-
-Some of these plugins may be reimplementation of stuff from the tools/
-directory (integrated database tools).
-
-
-
-         control
-         �������
-         Allows changing per-page settings, and adds a easily accessible
-         "page control" action link below every page.
-
-         You can use this to immediately change per-page flags (_READONLY,
-         _HTML, _DISABLED and so on). Or you can delete a unwanted page as
-         soon as you discover it.
-         It also enables you to edit any entries in the {meta} field of
-         database entries (which sometimes contain HTTP headers, or page
-         "class" settings).
-         And the fourth possible action is to easily rename the page (with
-         letting ewiki adjust all links to it without further intervention).
-
-
-
-         SearchAndReplace
-         ����������������
-         Is a powerful text/content replacement tool. It features regular
-         expression matching, but can also be used as any other simple string
-         replace-all tool.
-
-
-         SearchCache
-         �����������
-         This tool is intended to create 'shadow pages' (or 'ghost pages')
-         for ewiki internal/generated pages (the ["page"] plugins), which
-         usually weren't found by the PageSearch and PowerSearch.  This
-         admin plugin just innovocates those page plugins and puts their
-         html output into the database (which then can is found by the
-         search functions, but is never displayed, because the page plugins
-         still have precedence over that faked database content).
-
-
-
-other plugins
-�������������
-These plugins actually implement some stuff, one usually should do inside
-of the yoursite.php ewiki wrapper script.
-
-
-
-         plugins/debug/
-         ��������������
-         Eventually contains debug plugins.
-
-
-
-         plugins/auth/
-         �������������
-         Contains various (example and ready to use) plugins for the
-         ewiki_auth() interfaces. This directory contains its own
-         README.auth, which describes the _PROTECTED_MODE, the _auth API and
-         available sample plugins in detail.
-
-
-
-         plugins/auth-liveuser/
-         ����������������������
-         Contains the more advanced authentication and permission plugin
-         bundle for chaining ewiki with the PEAR LiveUser authentication
-         framework. There is detailed documentation within the README in
-         this subdirectory.
-
-
-
-separate "extra" tarball
-������������������������
-There are a few plugins and extensions, which are not packaged into the
-distributed ewiki tarball for size reasons. You can obtain it from your
-favourite dealer, or from our downloads/ directory as "extra-CVS-*"
-tarball.
-   http://erfurtwiki.sourceforge.net/downloads/
-
-The package currently just contains a minimal spam filter (which after all
-isn't very useful for a Wiki site), but in the future will also provide
-additional example/ layouts and some image/graphics/icons for layout
-beatification purposes.
-
-
-
-
-
-
-
-
-  -------------------------------------------------------------------- 7 --
-
-
-
-
-
-More separate files
-�������������������
-Even if one of the project goals was to have everything in one script,
-there are now some support scripts around it, but those are normally
-only required for setup (init-pages for example). With some others you
-need to take a lot of care before installing on a public WebServer
-(the tools/ for example).
-
-
-
-Pages in init-pages/
-��������������������
-This directory just contains text-files with the wiki_source of the
-initial pages, which are inserted if you start ewiki.php for the
-first time.
-You can create these files with the tools/ewiki_backup.php script
-or the 'ewikictl' commandline utility.
-
-
-
-Additional tools/
-�����������������
-This directory holds some (external) add-ons, which are intended to
-supply "admin functions" for the ewiki database.
-It is strongly discouraged to integrate this with ewiki, as it could
-be dangerous to have them always around and usually such stuff just
-complicates things (wiki's should be easy to use).
-
-Per default you will be presented a HTTP Basic AUTH login dialog box
-by your browser if you try to use one of the www tools. This is made
-to prevent other people from doing any harm to the setup.
-In the "tools/t_config.php" script you'll see a link (include) to
-"fragments/funcs/auth.php", which is responsible for this integrated
-security feature. Just insert a username and a password here to start
-using one of the tools/.
-Please keep in mind, that the $passwords array of that ".../auth.php"
-script has nothing to do with the _auth API or EWIKI_PROTECTED_MODE.
-
-Because the www tools (all stuff named "t_*.php") use the "ewiki.php"
-script and the sample "config.php", you eventually need to configure
-these tools separately (they don't need any ewiki plugins, but the
-database ones, if necessary). So if there are problems (for example
-if your ewiki setup is configured with ewiki_auth, which then could
-overlap with the ".../auth.php" script), you may need to edit the www
-tools own "t_config.php" accordingly. (Note: This is not required for
-the default setup.)
-
-If you'd like to integrate the tools/ as virtual pages into ewiki, then
-the StaticPages plugin will help. You then needed to remove the line
-that tries to re-include() your config.php and ewiki.php from the tools/
-"t_config.php" script (else you'll break ewiki).
-To load your tools/ as static pages into the wiki, you then just needed
-a call to ewiki_init_spages() with the "./tools/" directory as parameter.
-
-
-
-         tools/t_flags
-         �������������
-         WikiPages usually have the page flag TEXT assigned. Other possible
-         flags are DISABLED, SYSTEM, BINARY or HTML, READONLY, WRITEABLE.
-         Usually page flags are copied from one page version to the next.
-
-
-
-         tools/t_backup
-         ��������������
-         Use this to make backup files from the WikiPages. This www script
-         is a wrapper around the ewikictl commandline utility and library,
-         and therefore supports almost the same options.
-
-
-
-         tools/t_restore
-         ���������������
-         Allows to reinsert the files generated with the backup utility into
-         the database. It is also a www wrapper around ewikictl and thus
-         also supports the "plain", "flat" and "fast" file formats.
-
-
-
-         tools/t_remove
-         ��������������
-         Use this to delete a page from the database (including all saved
-         versions).
-         You should always prefer to set a page DISABLED with the ewiki_flags
-         tool to hide unwanted content. -- make love() not unlink()
-
-
-
-         tools/t_holes
-         �������������
-         If pages are edited often / regularly you will soon get hundreds of
-         saved page versions. As this slows down (particularly the
-         db_flat_file ones) and enlarges the database content size, you may
-         want to strip old versions.
-
-         This tool suggests you to remove a few page versions. You should
-         however NOT DELETE the page VERSION ONE and the very last (newest)
-         page version (of course).
-         The page version 1 often contains control data, not found in newer
-         versions, when db_flat_files or db_dba is used, so please keep
-         aware of this.
-
-         There were some changes necessary in db_flat_files to support
-         those "version holes", but it currently seems to work stable.
-
-
-         tools/t_textinsert
-         ������������������
-         Can insert plain text files into the database. This is much the
-         same, what usually happens to the files inside init-pages/
-
-
-
-         tools/t_transfer
-         ����������������
-         Allows to download all pages in one big "binary" file, and to
-         reinsert it on the same way. This allows for quick moving of
-         the whole database content.
-
-
-
-         tools/t_revert
-         ��������������
-         Can undo mass changes caused by a script attack (specifically
-         designed to spam or corrupt a Wiki) or someone who put enourmous
-         energy into garbaging multiple pages. The {auther} field always
-         contains at least an IP address to allow easy tracking of such
-         activity, and this plugin just enables you to remove page versions
-         whose {author} field matches a certain string (the attackers IP
-         address).
-
-
-
-         tools/ewikictl
-         ��������������
-         ewikictl is a commandline based utility - as opposed to the
-         www/http based scripts mentioned above.
-         UNIX people will find it very useful and handy, while it is
-         believed to work on Win32 systems too.
-
-         It integrates a lot functionality of the web based tools/, some
-         of them less flexible and others more powerful than in the
-         other tools. It, for example, allows to generate database backups
-         automatically and is often easier to use. On the other hand it
-         will be of little use if you don't have a shell account on the
-         WebServer running your wiki (because most times one cannot make
-         remote mysql server connections).
-
-         The most important feature is to make backups using the
-         --backup switch:
-
-             All pages from the database will be saved into backup files
-             in the directory given by --dest (or if not given into
-             './backup-<currentdate>').
-
-             The --format of the backup files can be: plain, fast, flat
-             or xml, meta, xmlmeta, sql, mysql. But remember that only
-             the first three mentioned formats can be reinserted using the
-             ewikictl utility.
-
-             You really should give the --all parameter too, whenever you
-             make a backup, because else only the very last version of each
-             page will get saved (and think of a garbaged last version, this
-             would be a bad idea). So USE --all ALLWAYS!
-
-         Backups can be reread into the database using the
-         --insert switch:
-
-             The --dest or --source parameter says where to search for the
-             save page files, and the --format option again tells the
-             correct backup format (you will get a garbaged database if you
-             get it wrong).
-
-             The --all option is of course necessary again if you gave it
-             when doing the --backup, and ewikictl will complain if it
-             believes the --all option was required.
-
-             You can also use --insert to initially fill a database, or to
-             add just a few new pages, as pages inside the database will
-             never be overwritten by the ones added with --insert.
-
-             The --insert switch also allows to be used to load just one
-             file into the database.  --insert <WikiPageFileName>
-
-         Another function is to speed up the database, by creating version
-         --holes:
-
-             If you utilize the db_flat_files and you have hundreds of
-             versions for one page, things may get slow at some point of
-             time, so you may wish to remove some of the unneeded versions.
-             That is what the --holes is for, it strips some of the page
-             versions from the database. Please keep in mind, that the
-             very first version of each page may contain special control
-             data, which is not available in the following ones (this is
-             especially true for db_flat_files).
-
-             Per default the 2nd version of a page until the 10th before
-             the last page version will be removed. You can however specify
-             this range yourself:
-                 --holes 2..-10       (default)
-                 --holes 5..-5        (5th until 5th before last version)
-
-             Please also keep some versions at the end, as the very last
-             one may contain mangled text (if someone backspaced around).
-
-             The --all option is implied for --holes, but you can and you
-             should combine --holes also with --backup. This special
-             feature will save a backup into the --dest directory ('./holes'
-             per default) before the page version is removed from the
-             database.
-
-         --format
-             The default backup/insert format is the 'plain' one - which
-             means just a pages content will be saved into the files.
-
-             It is however recommended to use the "--format flat"  or
-             "--format fast" instead, as both can contain the complete meta
-             data of a page.
-
-         --ls
-             Will print a directory-listing like list of all pages from
-             the database.
-             You can add a pagename as parameter, so only that one will
-             get shown.
-
-         --reset <pagename>
-         --disable <pagename>
-         --enable <pagename>
-         --html <pagename>
-         --readonly <pagename>
-         --writeable <pagename>
-             Will set the according page flags for the given page. You can
-             give the page name also by using the --page or --file or --id
-             switch.
-
-         --chmod <flags>
-             Will set the page flags to the given decimal value. The
-             pagename must be given using --page, --file or --id. This
-             option of course requires knowledge of the flag/option values
-             and their numeric/decimal representations.
-
-         --unlink <filepattern>
-             Can be used to delete a page. You can use the asterisk to
-             remove more than one page, just an '*' would for example delete
-             all pages.
-
-
-         NOTE that you can also use this utility without a shell account on
-         your WebServer, if you create temporary .php wrapper scripts, that
-         contain nothing more than:
-         <pre><?php  echo `./tools/ewikictl -ll`;  ?></pre>
-
-         Please search google or freshmeat.net for one of those shell faking
-         CGI scripts, to ease this, so can get the most out of ewikictl.
-
-
-
-         tools/wiki2html
-         ���������������
-         Renders the WikiPages and saves the resulting <HTML> bodies into
-         files. It currently cannot deal with images and binary content
-         correctly.
-
-
-
-         tools/mkhuge
-         ������������
-         For lazy people - if for some reason your text editor does not
-         allow to enter the correct include() commands for the files from
-         the plugins/ directory you may find this shell script useful to
-         create a monster version of ewiki (plugins and core script merged
-         together into one file).
-         See the paragraph about "monsterwiki.php" for more detailed infos.
-
-
-
-         tools/mkpluginmap
-         �����������������
-         Is the companion tool for the new ewiki pluginloader extension. It
-         traverses the plugins/ directories and generates a list which
-         allows automatical loading of ["page"] and ["action"] plugins.
-
-         Use the output of this script to replace the list of available
-         plugins inside of the "pluginloader.php" script. But don't forget
-         to disable that extensions, that you wouldn't like to be available.
-
-
-
-         tools/mkpageplugin
-         ������������������
-         Can convert any StaticPage file (from the spages/ directory) into
-         a standard ewiki page plugin (to get included() like all the others
-         then). It detects automatically the type of the given StaticPage
-         input files - Wiki source (.txt), ready HTML content, or even PHP
-         code.
-         It's intended as help for the unexperienced PHP user, or if you
-         needed to mass convert StaticPage files into plugins. But please
-         note, that including() hundreds of page plugins slows down the PHP
-         interpreter and eats a large amount of memory (and this was the
-         reason for extracting some page plugins into StaticPages).
-
-
-
-examples/
-���������
-The file "examples-1.php" is the default layout, which you will see, when
-you first run ewiki. The examples/ subdirectories now holds further example
-'ewiki wrappers' or 'layout scripts' (commonly referred to as "yoursite.php"
-scripts in the README).
-
-There is not much further interesting stuff in here. If you can make a
-contribution, just do (however, in the ewiki core tarball, we don't want
-an image or graphics directory).
-
-
-
-         examples/homepage.php
-         ���������������������
-         This is an example on how to use ewiki.php with an authentication
-         frontend. Note that this is not the recommended way to use a wiki
-         (adding authentication can be considered "crippling" a wiki).
-
-         "Authentication" means just a JavaScript based password query
-         dialogue (the password is however checked server-side inside the
-         homepage.src script).
-
-         You should install it preferably as index.php as described on top
-         of the file, the ewiki.php script must be there too. Edit the source
-         and colours to suit your needs. Guess, it needs some images as well.
-
-
-
-Nice things in fragments/
-�������������������������
-This directory holds some files to integrate ewiki.php within some
-other web projects (for example PhpNuke) or some helper and extension
-code, or just other example layouts.
-
-Please have a look at the fragments/README - and as usual into the
-files itself!!
-
-
-
-         strip_wonderful_slashes.php
-         ���������������������������
-         If you have a PHP 4.1 or a provider using the annoying factory-default
-         settings of such a version, you may find this tiny script helpful.
-         It removes the just-for-security-reasons-added-backslashes from the
-         $_REQUEST variables. I wasn't very interested in adding hundreds of
-         stripslashes() calls inside ewiki.php, so this is the workaround for
-         __your__ providers broken php.ini
-
-
-
-         fragments/funcs/wiki_format.inc
-         �������������������������������
-         This php include() file contains just the reduced wiki_format() function,
-         the code to generate internal WikiLinks and the binary data stuff has
-         been removed.
-         It is best suited to allow rendering of WikiSource with other php projects.
-
-         The script was contributed by Frank Luithle.
-
-
-
-         404finder.php
-         �������������
-         Simple example on how to use "ErrorDocumet 404" rediriction to
-         activate the ewiki page search function automatically, which is the
-         poor mans mod_rewrite.
-
-
-
-         htaccess
-         ��������
-         To make a Wiki installation look more profession you should try to
-         use your Webservers mod_rewrite module to get nicer looking URLs.
-         This file is an example to be installed as ".htaccess" (Web server
-         per-directory configuration file), which allows to call your ewiki
-         wrapper using URLs like:
-
-            http://www.example.de/wiki/SomePage
-            http://www.example.de/wiki/edit/OneOfThePages
-
-         (For this example, you needed to set EWIKI_SCRIPT to "/wiki/").
-         This example '.htaccess' script shows how to instruct mod_rewrite
-         to catch above URLs and to transform them into ".../index.php?id=Page"
-         again before calling the script.
-
-
-
-         binary.php
-         ����������
-         If your ewiki wrapper script is not binary safe (that is, eventually
-         printing some <html> or text output to stdout before you include()
-         the core ewiki script and called the ewiki_page() function) - then
-         you may need to place a secondary ewiki wrapper besides the one
-         dedicated to pages.
-         The "fragments/binary.php" gives an example and further instructions
-         on this issue.
-
-
-
-         fragments/funcs/auth.php
-         ������������������������
-         Include this script wherever you need authentication. It uses the HTTP
-         Basic Authentication scheme, but the passwords are inside the script
-         in the $passwords array (so no need for .htpasswd setup).
-
-         Note that this script needs to be called before any body output is made
-         (else it would be too late for http header() output).
-
-
-
-         fragments/css/*
-         ���������������
-         Please understand the *.css as examples that illustrate which style classes
-         are defined inside ewiki.php and its companion plugins.
-
-         Remember, you could insert those files with PHPs` include(), too - if
-         desired (and if a <style> area is currently to be written to stdout).
-
-
-
-         fragments/blocks/*
-         ������������������
-         Contains small include() scripts to be loaded into "yoursite.php"
-         as "sidebars" and the like for beatification purposes.
-         Oftens these are reduced but useful ["page"] or ["action"] plugins,
-         performing common tasks, like printing the list of newest pages or
-         some sort of menu, or even random page links.
-
-
-
-Other patches/
-��������������
-In the patches/ directory some code tweaking tips are collected that are
-either not worth a new plugin or to uncommon and unsafe and unsupported to
-get into fragments/ or plugins/. Please see the README and the files therein
-for more informations.
-
-I often like to refer to that subdir as the "recoding FAQ".
-
-
-
-Updates + How to deal with tweaked code
-���������������������������������������
-If you ever happen to recode parts of a plugin, WHICH WE STRONGLY ENCOURAGE
-TO DO (to match it better to your needs) - then there is always the risk of
-losing your changes as soon as you upgrade and overwrite everything inside
-of plugins/
-Therefore it is recommended to create a subdirectory like "local/" where
-you copy changed plugins into, then include() them from there instead of
-the distributed default from plugins/. So you won't lose your changes and
-enhancements if you upgrade to a newer version. You of course should then
-check (after updates) if the newer version of a plugin contained
-enhancements you'd like to merge with your cutomized version of the earlier
-plugin incarnation.
-
-For the main "ewiki.php" script, things are of course more difficult, as
-you will probably always overwrite it when you update your installation.
-Best approach is to keep a NOTES file, where you store your patches for
-later reinclusion with newer releases, or even to keep always a second
-copy of your tweaked "ewiki.php". Much better was of course to send your
-changes to the ewiki -dev people so they could merge them into the CVS,
-so everybody could enjoy your ideas.
-
-
-
-
-
-
-  -------------------------------------------------------------------- 8 --
-
-
-
-
-
-
-Extension HowTo
-���������������
-Best way to extend it is to read the man page on vi or emacs ;-> However
-the tool that made this all possible was joe.
-
-
-
-the PlugInterface
-�����������������
-The $ewiki_plugins array holds an array of "task names" connected to
-function names (that of course should do something senseful). As an
-example:
-
-  $ewiki_plugins["image_resize"][0] = "ewiki_binary_image_resize_gd";
-
-connects the task name "image_resize" to function already inside ewiki.php,
-and the task "image_resize" will be called for every uploaded or to be
-cached image. The function name here does not say anything about the
-parameters the function will be called with later. You have to look up
-the original function implementation in ewiki.php to see which parameters
-will be passed; so you could write your own task plugin.
-
-The [0] in the example above shows that this is the very first registered
-function for the task "image_resize", there could be others as well. So
-if you write a plugin you should take care to add your function name using
-$ewiki_plugins["task"][] = "my_func" so you won't overwrite a previous
-function name ''registration''.
-There are of course tasks like ["database"] where only one of the plugin
-functions will be called, in this case you should of course overwrite [0].
-
-Two special case "tasks" are ["page"] and ["action"], because they aren't
-counted with numerical indices, but instead carry WikiPageNames or
-other idf strings as array/hash index.
-
-
-
-plugin tasks
-������������
-Here's a short summary of current PlugInterface "tasks" and (recommended)
-function interface definitions (the "= function (..." lines). A plugin hook
-with [] means there can be multiple, and each one would be tried.
-
-basic
------
-
-  ["page"][$PageName]   - called for requests to page "$PageName"
-                          (like "SearchPage", "NewestPages")
-                        = function ( $id, $data, $action )
-
-  ["action"][$ACTION]   - called for requests with url "?id=$ACTION/pagename"
-                          (core actions are "edit", "links", "info", "view")
-                        = function ( $id, &$data, $action )
-
-  ["handler"][]         - called from ewiki_page() on start-up, if it returns
-                          a string the page was handled and no further
-                          processing takes place, the plugins output is used
-                        = function ( $id, &$data, $action )
-
-rendering
----------
-
-  ["render"][0]         - alias for ewiki_format() - our "WikiKernel"
-
-  ["format_source"][]   - called inside the format function for the wiki
-                          source, implement this or the following ones to
-                          use complex wiki markup
-                        = function ( &$wiki_source )
-
-  ["format_line"][]     - generic call from inside wiki format engine
-                          for every line, you may need to use static
-                          vars inside your plugin function
-                        = function ( &$o, &$line, &$post )
-
-  ["format_tbl"][0]     - called to handle "wiki|table|markup"
-                          (the first and last | are already stripped)
-                        = function ( &$o, &$line, &$post, $tbl_open=0 )
-
-  ["format_final"][]    - call after wiki source was transformed into html
-                          (WikiPageLinks were already interpolated too)
-                        = function ( &$html )
-
-  ["format_block"][]    - called, with the page fragment extracted using
-                          the string patterns of the according
-                          $ewiki_config["format_block"] entry
-                        = function (&$currbuf, &$in, &$iii, &$s, $btype);
-
-  ["format_para"][]     - called, if the $para (text enclosed in <p></p>)
-                          is to be written into the output stream $ooo[$in][0]
-                        = function (&$para, &$ooo, &$s);
-
-  ["link_url"][]        - called to transform wiki source references
-                        = function ( $href, $title )
-
-  ["link_final"][]      - called from ewiki_link_regex_callback to transform
-                          the final <a href>
-                        = function ( &$str,, $type, $href, $title )
-
-special tasks
--------------
-
-  ["database"][0]       - only [0] will be called in favour of the ewiki.php
-                          internal ewiki_database_mysql()
-                        = function ( $action, $args=array() )
-
-  ["image_resize"][]    - all [] registered functions will be invoked
-                        = function ( &$content, &$mime, $return=0 )
-
-  ["mime_magic"][0]    - hooks before save_binary/image to fetch the
-                         correct mime type for non-image files; nowadays
-                          just an always-available get_content_type()
-                       = function ( &$content )
-
-  ["binary_get"][0]     - the binary_repository handles large/binary content
-                          (to separate it out of the standard sql-database),
-                          usually just sending it to stdout
-                       = function ( $id, $meta )
-
-page lists
-----------
-
-  ["list_pages"][0]     - <li>st generating callback function
-                        = function ( $lines )
-
-  ["list_dict"][0]     - special variant of the above one (called just for /
-                          from within PageIndex and WordIndex listings)
-                       = ???
-
-  ["list_transform"][]  - works on the given list of links (text transformations)
-                        = function ( &$lines )
-
-  ["make_title"][0]     - allows to chain a replacement function for
-                          ewiki_make_title()
-                        = function ($title, $class, $action, $go_action, $may_split)
-
-  ["title_transform"]   - changing the currently linked title (called from
-                          within _make_title)
-                        = function ($id, &$title, &$go_action)
-
-page transform / additions
---------------------------
-
-  ["view_append"][]    - output will be printed below a rendered page
-                       = function ( $id, $data, $action )
-
-  ["view_final"][]     - can rework the full html of the rendered page
-                       = function ( &$html, $id, $data, $action )
-
-  ["view_append"][]     - add <html> code at the end of the currently
-                          viewed page
-                        = function ($id, $data, $action)
-
-  ["view_final"][]      - filter hook for final processing of "view/"ed pages
-                        = function ($o, $id, $data, $action)
-
-  ["page_final"][]      - filter hook for final processing of any
-                          shown page (any action: edit/, view/, info/, ...)
-                        = function ($o, $id, $data, $action)
-
-edit/ hooks
------------
-
-  ["edit_preview"][]    - called if edit pages [preview] button pressed
-                        = function ( $data )
-
-  ["edit_form_final"][] - add <html>/<form>s to the edit/ page
-                        = function (&$o, $id, &$data, $action)
-
-  ["edit_form_append"][] - insert other <input> fields between <textarea>
-                          and <submit> button on the edit/ page
-                        = function ($id, &$data, $action)
-
-  ["edit_hook"][]      - chains into before the edit box is printed
-                          (to allow security checks, pre-edit-tweaking, ...)
-                          any output terminates the current edit/ attemp
-                       = function (&$id, &$data, &$hidden_postdata)
-
-  ["edit_save"][]       - immediately called before saving the currently
-                          "edit/"ed page into the database, allows last
-                          transformations or rejection (unsetting $data)
-                        = function (&$data, &$old_data)
-
-  ["edit_patch"][0]     - special hook for the patchsaving plugin
-                        = function ($id, &$data)
-
-bloat extensions
-----------------
-
-  ["auth_*"][]         - plugin tasks used with ewiki_auth()
-                       = see the plugins/auth/README.auth
-
-  ["mpi"][...]          - markup plugins, see next paragraph
-
-  ["init"][]           - run once, when the main script is included()
-
-  ["page_init"][...]    - init functions, called when ewiki_page()
-                          is called the very first time
-
-aliases and variants
---------------------
-
-  ["action_always"][$ACTION]   - are called with precedence over ["page"]
-                                 plugins (for example "links" which also
-                                 works for registered page plugins)
-
-  ["action_binary"][$ACTION]   - action/admin plugins which do not care, if
-                                 the current page actually is binary data
-
-
-Some other entries have been re-extracted into $ewiki_config, because they
-were falsely in $ewiki_plugins. See the paragraph at the start of the README
-on the $ewiki_config array.
-
-This list will probably not stay up-to-date, so please grep the ewiki.php
-script for all occurrences of 'ewiki_plugins["', and you can of course
-invent some new and tell the author how it helped you to implement something
-very different.
-
-
-
-        mpi plugins
-        �����������
-        Plugins of the class "mpi" extend the wiki markup with html like
-        calls to dynamic content generating functions.  They were taken from
-        the ewiki adaption of Hans B Pufal and are very similar to the
-        plugins found in PhpWiki.
-
-        In order to use them you must first load their generic PlugInterface
-        file using include("plugins/mpi.php");
-
-        Afterwards you could include all the wanted mpi extension modules,
-        using include() again:
-        include("plugins/mpi_calendar.php")
-
-        You can then call those plugins from the wiki markup like:
-        <plugin: calendar>
-        <ewiki: calendar>
-        <mpi: calendar>
-        <?plugin calendar?>
-
-        There are many different plugins available (not all included with
-        this ewiki distribution), and the allowed arguments differ widely
-        (must all be noted inside the < > and are written in arg=value style
-        separated by semicolon):
-
-        <plugin: plugins>
-
-        <plugin: calendar year=2005; month=7;>
-                          month_offset=0; start_wday=0;
-                          wday_color=#999999; today_color=#ffcccc;
-                          wend_color=#bbbbbb;
-
-        <plugin: environment>
-                          info=45
-
-        <plugin: insert !WikiPageName>
-                          # this includes the referenced WikiPage in a box
-                          # into the current one, Note the ! to prevent that
-                          # WikiWord from getting rendered (before mpi sees
-                          # it)
-
-        <plugin: page_flags>
-                          # I strongly discourage this mpi plugin to be
-                          # loaded as it allows such easily to spy page
-                          # security settings
-
-
-
-
-
-
-        authentication/permission plugins
-        ���������������������������������
-        The paragraph and descriptions about the _auth interfaces have gone
-        into plugins/auth/README.auth
-
-
-
-writing your own plugin
-�����������������������
-Using the list of current plugin tasks, you could (hopefully) write your own
-extension with ease. It is probably most simple to write a dynamic ["page"]
-plugin, so we start with this as example. All you need is a function
-definition like:
-
-   function my_page_plugin($id, $data, $action) {
-      return("This is the returned page <b>content</b>.");
-   }
-
-And then just register it as ["page"] plugin, using your defined function
-name (yes, this does NOT need to start with the usual "ewiki_" prefix!). You
-also need to tell ewiki about the WikiPageName under which your plugin
-should be made available:
-
-   $ewiki_plugins["page"]["MyPagePlugin"] = "my_page_plugin";
-
-That's it. But of course your function should do something more useful, than
-just returning a hardcoded html string - even if this all, what's necessary
-here. The parameters to your ["page"] plugin function you'll often just want
-to ignore, and implement your plugin functionality (hard disk formation e.g.)
-independently from such things.
-
-It is likewise easy to write an ["action"] plugin; but this type of plugin
-should then process some parts of the $data entry and work for nearly any
-page (extracting contents or presenting the current page differently). So
-this kind of plugin could be used to initialize a download for the current
-page or to allow to email it to someone else (beware of the spammers!).
-
-
-
-format_* / rendering plugins
-����������������������������
-It is rather simple to add WikiMarkup using the $ewiki_config["wm_..."]
-settings, but for some tasks you need stronger weapons like rendering
-and markup plugins.
-
-The ewiki_format() function (often blatantly referred to as "rendering
-kernel") recently got rather complicated to add support for the 'block'
-plugins. Therefore we'll first need to discuss the variables structures
-and names used inside of it:
-
-
-
-        ewiki_format() internals
-        ������������������������
-        When the function receives the input string (WikiSource), it first
-        escapes all html tags using &amp; &lt; &gt; to replace the & < >
-        chars (because HTML is not allowed within Wiki, initially).
-
-        Then it runs optional ["format_source"] plugins on the whole wiki
-        page (still one source string).
-        Afterwards ewiki_format() starts to split that wikisource into
-        fragments meant to get handled by ["format_block"] plugins AND/OR
-        the Wiki -> HTML transformation code inside of it. It creates an
-        array called $iii[] from it - each fragment being an array on its
-        own:
-           $iii[0] = array(
-              0 => "WikiSource ...",
-              1 => 0x0FFF,
-              2 => "core",
-           );
-        Initially we here just have one fragment [0] - and often this
-        remains the only one (if no block plugin activates for the current
-        WikiPage). The 0=> entry contains the body (wiki source) of a
-        fragment, while at the 1=> index you'll find the block flags and 2=>
-        is just the name of the block plugin to handle that fragment.
-
-        If there is some block code, like <htm>...</htm> or <pre>...</pre>
-        in the WikiPage, you'll end up with a larger $iii[] input array:
-           $iii[0] = array("WikiSource...",0xFFFF,"core"),
-           $iii[1] = array("<b>....",0x0002,"html"),
-           $iii[2] = array("text",0x0FFF,""),
-
-        Besides the $iii[] input array, we'll also have an array containing
-        rendering status variables called $s[]. The most important entry
-        there is $s["in"], which is the index into the currently accessed
-        $iii[] wiki page source or block fragment.
-        And ewiki_format() then uses various alias variable names for
-        entries of the status var $s[] array - for example $in and $s["in"]
-        are the same index number.
-
-        After ewiki_format() separated the input source into the block
-        fragments of $iii[], it will then run the actual ["fragment_block"]
-        plugins on it. These can then apply regexs on them, or strip the
-        fragments completely out of $iii[] or transform then into regular
-        wiki source.
-
-        Then the large wiki transform loop comes into action, but only
-        for $iii[] fragments, whose flags (in the $iii[...][1] number)
-        have the bit 0x0001 set. Other blocks/fragments of $iii[] remain
-        untouched.
-        While transforming the $iii[] arrays WikiSource a new fragments
-        array will be created, called $ooo[] - the output array, which has
-        exactly the same layout. And every $iii[$in] directly maps to the
-        $ooo[$in] - same index number! But the later then already contains
-        <html> instead of wiki source.
-
-        Inside of the transformation loop, two other plugin types are
-        activated (besides applying the $ewiki_config["wm_..."] ruleset):
-        the ["format_line"] and ["format_para"] plugin groups.
-
-        After all $iii[] blocks have been transformed into $ooo[], a second
-        loop will check the flags (this time $ooo[...][1]) for the bit 0x0002
-        which tells, if WikiWords should be transformed into html <a href=>
-        links.
-
-        After link conversion (on the selected fragments), all blocks (the
-        content entries $ooo[...][0] of course) of $ooo[] are merged together
-        into one <html> string. After the ["format_final"] plugins run over
-        this, ewiki_format() returns the resulting <html> page.
-
-
-
-        the format_ plugin hooks
-        ������������������������
-        As denoted above, the ["format_source"] and ["format_final"] plugin
-        hooks are the simplest to work with, as both only get one parameter
-        (passed by reference) containing either the full WikiPage source
-        text or the already fully rendered <html> output.
-
-        The ["format_line"] and ["format_tbl"] hooks are also rather simple,
-        lookup their interface to know which variables you could modify.
-
-        The ["format_para"] and ["format_block"] plugins both recieve
-        either the $iii[] or $ooo[] and status $s[] array variables (plus
-        a few aliases and shortcomings). This makes these hooks look a
-        bit more complicated, but allows great flexibility - a "_block"
-        plugin could for example merge its $iii[] fragment with another
-        one, or replace itself with nothing.
-
-        To write a markup plugin, you should lookup the actual interface in
-        the 'ewiki.php' script or in this README. And don't forget that most
-        parameters are meant to be passed by reference to be useful!
-
-
-
-        $iii[] and $ooo[] block flags
-        �����������������������������
-        The $iii[...][1] and $ooo[...][1] hold the flags (as defined by
-        $ewiki_config["format_block"][...][2]) for each fragment of the
-        WikiPage. The "core" blocks (plain WikiSource) always have the
-        default 0x0FFF assigned.
-
-        Currently used bit values are:
-          0x0001 - render WikiMarkup
-          0x0002 - render WikiLinks
-          0x0004 - international character &#htmlentities; allowed
-          0x0100 - fragment further (other block plugins can split it)
-
-        pseudo-values (OR checks):
-          0x0011 - consider to be inline block between WikiSourceBlocks
-                   (prevents paragraph breaks between plugin and wiki block)
-          0x0022 - scan for WikiWords in this paragraph
-
-
diff --git a/mod/wiki/ewiki/README.de b/mod/wiki/ewiki/README.de
deleted file mode 100644 (file)
index 27bfb85..0000000
+++ /dev/null
@@ -1,819 +0,0 @@
-
-README.de
-���������
-Dies ist eine teilweise �bersetzung der README Datei, die weiterhin als
-Referenz verwendet sollte, da hier nur ein paar allgemeine und Setup-
-Informationen enthalten sind.
-
-      1  Was ist das?
-    1.1  Warum "ErfurtWiki"?
-    1.2  WikiAlternativen
-    1.3  Autor
-    1.4  ProjektSeiten
-    1.5  Support bekommen
-    1.6  Lizens
-
-      2  Wie jetzt?
-    2.1  In yoursite.php integrieren
-    2.2  Den WikiSeitenNamen bestimmen
-  2.9.1  WikiSprache einstellen (deutsch)
-
-      3  Im Detail
-    3.1  die ewiki_ Funktionen
-    3.2  $GLOBALS Verschmutzung
-    3.3  die EWIKI_ Konstanten
-    3.4  $ewiki_config[] array
-
-    4.1  Nur die WikiQuelltextTransformation einsetzen
-
-  6.1.2  Ohne MySQL DB verwenden     (WICHTIG)
-  6.1.3  db_fast_files
-  7.3.3  B�seB�ckSl�shes \\\\"       (WICHTIG)
-
-  9.5.5  Pa�w�rter und tools/
-
-
-
-  -------------------------------------------------------------------------
-
-
-
-Was ist das?
-������������
-Dies ist eine "WikiWikiWeb" Bibliothek, die in der PHP Webskriptsprache
-implementiert ist. Ein WikiWiki ist eine Webseite, die von wirklich jedem
-ver�ndert/erg�nzt werden kann, der dort vorbeischaut (ohne vorhergehenden
-Registrierungskram).
-
-Es sollte relativ einfach in bestehende Websites integrierbar sein,
-weil es eben kein komplettes Script sondern vielmehr eine Bibliothek
-ist, die kein fertiges Seitenlayout erzwingt. Stattdessen k�nnen die
-erzeugten WikiSeiten als Inhalt in das Layout einer bestehenden Seite
-eingebunden werden.
-
-
-
-Warum "ErfurtWiki"?
-�������������������
-Meine Heimatstadt (Erfurt liegt nahe bei Weimar.de) - und das ist wirklich
-nix weiter als ein Name! Der interne Projektname ist �brigens "ewiki".
-
-
-Warum sollte man ausgerechnet dieses Wiki verwenden wollen?
-
- - es ist wirklich alles notwendige in einer einzigen Skriptdatei, so
-   da� keine 20 anderen Dateien mit herumliegen m�ssen, wenn man es
-   in die eigene Site einbindet
-
- - vordefinierte Layouts werden nicht aufgezwungen, es gibt Beispielseiten
-   aber keine Skins oder Themes aus denen man w�hlen m��te; das Wiki pa�t
-   sich wirklich in eine existierende Seite ein
-
- - es ist vergleichsweise schnell, regul�re Ausdr�cke werden zwar auch hier
-   verwendet, aber nicht so exzessiv wie in anderen Wikis
-   (haupts�chlich einfache und flinke String-Funktionen)
-
- - der Funktionsumfang ist inzwischen beachtlich :)
-
-
-
-WikiAlternativen
-����������������
-Es gibt auch noch andere h�bsche WikiWare, falls jemand hiermit nicht
-gl�cklich werden tut:
-
-* PhpWiki ist deutlich vollst�ndiger,
-  siehe http://freshmeat.net/projects/phpwiki,
-  unterst�tzt versch. Datenbanktypen, Lokalisierung, integrierter
-  Administrationsbereich
-
-* Miki ist eine kleine WikiImplementierung in PHP von Jukka
-  Zitting.  http://miki.sourceforge.net/
-
-* http://coWiki.org/ ist tats�chlich mehr ein CMS denn ein Wiki
-
-* Und schlie�lich: sfWiki - das sourceforge Wiki (daher auch zu finden
-  bei http://sfwiki.sourceforge.net/). Teile der WikiSyntax sieht ein
-  wenig merkw�rdig aus, ein paar andere Sachen sind ganz nett; und es
-  unterst�tzt Benutzerauthentifizierung
-
-* f�r andere Wikis in anderen Programmiersprachen einfach mal die
-  Suchmaschienen nerven:
-  http://www.freshmeat.net/search/?q=wiki&section=projects
-  http://www.google.com/search?q=wiki
-
-
-
-Autor
-�����
-Mario Salzer <milky*erphesfurt�de>
-ICQ95596825 und Yahoo: icq95596825
-
-Und alle anderen wurden in die Datei CREDITS verbannt  ;->
-
-Dies ist ein relativ neues Projekt. Um es zu verbessern, bin ich sehr
-auf R�ckmeldungen angewiesen. Jede Mail ist ein wertvoller Beitrag!
-
-
-
-ProjektSeiten
-�������������
-freshmeat
-- http://freshmeat.net/ewiki
-
-demo:
-- http://erfurtwiki.sourceforge.net/
-
-neueste Versionen (instabile EnwicklerVersionen):
-- http://erfurtwiki.sourceforge.net/downloads/
-
-
-
-Support bekommen
-����������������
-Hilfe bei der Installation gibt's nat�rlich, und selbstverst�ndlich sind
-wir auch dankbar f�r jeden Hinweis �ber bestehende Probleme und Fehler
-(bekannterma�en ist die REAMDE noch nicht ausf�hrlich genug und stellenweise
-�berhaupt keine Hilfe).
-Bevor du aber einen BugReport versendest, lies dir bitte folgende Anleitung
-durch (absolut notwendig um KOSTENLOSEN support zu bekommen):
-
-http://www.lugbz.org/documents/smart-questions_de.html
-
-Danach bitte nicht z�gern, einen der Autoren zu kontakten oder einfach eine
-Nachricht in BugReports oder UserSuggestion auf unserer ProjektSeite zu
-hinterlassen.
-Wenn du dich auf unserer http://erfurtwiki.sourceforge.net/?MailingList
-anmeldest, hast du die M�glichkeit Hilfe f�r dein Problem von einer gr��eren
-Gruppe von Leuten zu bekommen (an- und wieder abmelden geht schnell).
-
-
-
-Lizens
-������
-Dieses "Programm" wird als "Public Domain" vertrieben. Public Domain
-ist wie "FreeWare", nur ein bischen mehr frei ;->  Man kann sich das
-vorstellen, wie die GPL ohne an die GPL gebunden zu sein. (Tats�chlich
-wollte ich einfach keine LICENSE Datei mitreinpacken, die gr��er ist als
-das eigentliche Programm.)
-
-Da dies ein freies (Bier) St�ck Software ist, kann mich nat�rlich
-niemand f�r irgendwelche Fehler oder all die WIRKLICH SCHLIMMEN
-FESTPLATTEN-SCH�DEN verantwortlich machen, die bei der Verwendung
-entstehen k�nnten ;>
-
-
-
-
-  -------------------------------------------------------------------------
-
-
-
-
-Wie jetzt?
-����������
-ewiki ben�tigt:
-
-- Webserver (Apache, Nanoweb, ...)
-- PHP 4.1 oder neuer
-- nach Mglk. eine MySQL Datenbank (l�uft aber auch ohne)
-- deine bereits exitierenden Webseite
-- die wundervollen "magic slashes" in antiken PHP version sollten wirklich
-  abgeschalten sein
-
-Wenn du keine MySQL-Datenbank hast, dann verwende die Erweiterung f�r
-die Datei-Datenbank.
-
-
-
-In yoursite.php integrieren
-���������������������������
-In den n�chsten Abschitten, soll mit dem Begriff "yoursite.php" der
-Teil deiner bestehenden Seite verstanden werden, der das Seitenlayout
-erzeugt (der also zumindest die <html><body> Tags um die Ausgaben von
-ewiki.php bastelt).
-Die schlichteste L�sung findet sich auch noch mal in example-2.php:
-
-    <HTML>
-    <BODY>
-    <?php
-
-       mysql_connect("localhost", "DB-USER-NAME", "PASSWORD");
-       mysql_query("use DATABASE-NAME-HERE");
-
-       define("EWIKI_SCRIPT", "yoursite.php?page=);
-       error_reporting(0);
-
-       include("ewiki.php");
-
-       echo   ewiki_page();
-
-    ?>
-    </BODY>
-    </HTML>
-
-Die ersten beiden Befehle �ffnen eine Verbindung zur MySQL-Datenbank,
-normalerweise w�rde man das Ergebnis von mysql_conect() in einer Variable
-wie "$db" ablegen, aber da PHP ohnehin nicht auf deren Verwendung besteht,
-wenn es nur eine DB-Verbindung gibt, wird eine solche Variable in
-"ewiki.php" auch gar nicht verwendet (und der Name dieser Variable w�re
-damit hier egal).
-
-Der Wert in der define() Zeile sagt ewiki wie die Hyperlinks zu den
-referenzierten WikiSeiten lauten m�ssen, damit ewiki.php auch f�r die
-n�chste angeklickte WikiSeite aufgerufen wird.
-Wenn du nur ein einziges "yoursite.php" Skript hast, wirst du den Wert
-direkt in "ewiki.php" ver�ndern wollen.
-
-Das error_reporting(0) wird sehr empfohlen.
-
-Das include("ewiki.php") l�dt endlich die ewiki "Bibliothek" und setzt
-alle bis hierher noch nicht definierten EWIKI_ Konstanten.
-
-Der Aufruf der ewiki_page() Funktion gibt diejenige WikiSeite zur�ck, die
-vom Browser angefragt wurde. Du mu�t hier "echo" davorsetzen, denn sonst
-wird der Text nicht ausgegeben (verpufft im PHP-Nirvana) - ewiki gibt die
-erzeugte Seite nicht selber aus.
-
-
-
-Den WikiSeitenNamen bestimmen
-�����������������������������
-Wenn du ewiki_page() einfach so aufrufst wie im oberen Beispiel angegeben
-(empfohlen), dann wird es versuchen, den Namen der angefragten Seite selber
-zu ermmitteln ($_SERVER["PATH_INFO"] oder GET-Variablen '?id=' oder '?name='
-oder '?page=' oder '?file=' in $_REQUEST["name"]).
-
-Wenn yoursite.php aber einen anderen Weg benutzt (andere Parameternamen),
-um den WikiSeitenNamen zu �bergeben, dann kann man ihn schlicht als ersten
-Parameter angeben:
-
-  ewiki_page( $id = "WikiSeitenNanem" );
-
-
-Example-4.php zeigt das beispielsweise, um die Liste der aktualisierten
-Seiten einzubinden.
-
-
-
-
-
-WikiSprache einstellen (deutsch)
-��������������������������������
-Ich hab es jetzt schon einige Leute behaupten h�ren, aber auch beim
-IntranetExplodierer kann man die "bevorzugten Sprachen" irgendwo einstellen.
-Wers nicht findet, kann ja auch gleichmal auf einen aktuellen Browser
-wechseln - das lohnt sich nicht nur wegen der vielen Seiten, die es dann
-pl�tzlich doch auf Deutsch gibt!
-
-Wer es partou nicht hinbekommt, kann nat�rlich die deutsche Sprache f�r
-ewiki erzwingen; hilfreich hierf�r ist z.B. die include()-Datei
-"fragments/force_lang_de.php".
-
-Es funktioniert aber auch mit diesem Befehl, der irgendwo in ewiki.php,
-config.php oder yoursite.php eingef�gt werden kann (nicht empfohlen):
-
-$_SERVER["HTTP_ACCEPT_LANGUAGE"] = "de; q=1.0, en; q=0.2, eo, nl";
-
-
-
-
-  -------------------------------------------------------------------------
-
-
-
-
-Im Detail
-���������
-Die MySQL DB Tabellenstruktur ist zu einem gewissen Grad kompatibel mit der
-des allseits bekannten �PHPWiki� (normalerweise reicht es EWIKI_DB_TABLE_NAME
-auf "wiki" zu �ndern, um PhpWikis DB weiterzuverwenden).
-Dies ist der MySQL Befehl, der die DB-Tabelle erstellt (beim ersten Start,
-automatisch):
-
-    CREATE TABLE ewiki (
-        pagename VARCHAR(160) NOT NULL,
-        version INTEGER UNSIGNED NOT NULL DEFAULT 0,
-        flags INTEGER UNSIGNED DEFAULT 0,
-        content MEDIUMTEXT,
-        author VARCHAR(100) DEFAULT 'ewiki',
-        created INTEGER UNSIGNED DEFAULT 0,
-        lastmodified INTEGER UNSIGNED DEFAULT 0,
-        refs TEXT,
-        meta TEXT,
-        hits INTEGER UNSIGNED DEFAULT 0,
-        PRIMARY KEY id (pagename, version)
-    )
-
-Den Spaltennamen {pagename} mochte ich eigentlich nicht, aber weil das der
-offensichtlich einzige Unterschied zur PhpWiki-Tabelle war, kam mir die Idee
-mit der Kombatibilit�t un so hab ich das adaptiert.
-Dummerweise mu� nun die ewiki_database() Funktion "pagename" st�ndig von
-und nach "id" �bersetzen.
-
-Die Spalte {version} wird zur Speicherung der verschiedenen abgelegten
-Seiten�nderungen verwendet. In anderen Wikis gibt es zu diesem Zweck eine
-Bonus-tabelle wie "backup" oder "history", aber ich hab den Sinn von sowas
-bisher nicht verstanden; und daher gibt es in ewiki nur diese eine Tabelle
-(und das scheint absolut zu reichen)!
-Die erste {version} einer Seite erh�lt die Nummer 1. Eine bestehende
-Seiten {version} wird niemals �berschrieben werden => sehr sicherer MySQL-
-Einsatz.
-
-Mehr �ber die {flags} in dem entsprechenden Abschnitt in der README. Das
-Feld {content} enth�lt nat�rlich den WikiSeitenQuelltext. {created} und
-{lastmodified} enthalten die entsprechenden Zeitangaben im UNIX format.
-
-{refs} enth�lte eine "\n" - getrennte Liste von referenzierten WikiSeiten.
-Der Code um diese List zu erzeugen ist etwas unsauber, so da� oftmals
-GeisterSeiten aufgef�hrt sind. Wieauchimmer, da� beeintr�chtigt ewiki
-nicht wirklich, und eine Korrektur w�re Zeit- und Geschwindigkeits-
-verschwendung.
-
-{meta} kann Bonusinfos enth, so da� die Tabellenstruktur nicht bei jeder
-Erweiterung ge�ndert werden mu�. Aktuell nur f�r Bin�rdaten (Bilder)
-verwendet.
-
-{hits} z�hlt die Seitenaufrufe, und ist nicht in {meta} integriert, weil
-separat schneller und einfacher zu verwenden.
-
-Die ewiki DB Tabelle kann nicht nur Texteseiten enthalten, sondern auch
-bin�ren Inhalt (vornehmlich Bilder), siehe {flags}.
-
-Das Ein-Tabellen-Konzept hat es �brigens auch recht einfach gemacht, das
-Datei-basierte DB-Backend zu entwickeln. Eine Beispieldatei:
-
-   id: WikiPageName\r
-   version: 1\r
-   flags: 1\r
-   author: 127.0.0.1:3054\r
-   created: 1046532697\r
-   lastmodified: 1046532697\r
-   refs: \nErfurtWiki\nNewestPages\n\r
-\r
-   !! WikiSourceContent
-   <more-text>...
-
-
-
-
-ewiki_ Funktionen
-�����������������
-Einige der Basis-Funktionen aus ewiki.php k�nnen getrennt von den anderen
-verwendet werden, andere sind ausgelegt um durch bessere Implementierungen
-ersetzt zu werden.
-
-
-   ewiki_page($id)
-   ---------------
-       Hauptfunktion, die die angefragte WikiSeite (oder die mit $id
-       angegebene) aus der DB holt, und mit ewiki_format() die fertige
-       HTML-Seite erzeugt.
-       Wenn die angefragte Seite nicht existert, wird eine edit-Box
-       zur�ckgegeben.
-
-
-   ewiki_page_...()
-   ----------------
-       Die meisten Fkt. mit diesem Prefix wurden aus der Hauptfkt.
-       herausgetrennt, um ewiki �bersichtlicher und leichter erweiterbar
-       zu machen.
-       Die meisten enthalten Code um spezielle/interne Seiten zu erzeugen
-       (Suche, Neuest, Info, und das Edit <FORMular>, ...)
-
-
-   ewiki_script()
-   --------------
-       Erzeugt URL aus angegebener Seiten $id und $action, verwendet dazu
-       die EWIKI_SCRIPT-Konstante. Dieser wrapper erm�glicht es auch die
-       eigentlich reservierten Schr�gstriche in Seitennamen zu verwenden.
-
-
-   ewiki_control_links($id, $data)
-   -------------------------------
-       Gibt die Zeile mit "DieseSeite�ndern, SeitenInfo, ... links" aus.
-
-
-   ewiki_format($wiki_source, $scan_links=1, $html_allowed=0)
-   ----------------------------------------------------------
-       Erzeugt die formatierten (HTML) Ausgabe f�r den �bergebenen
-       WikiQuelltext.
-
-       Der zweite Parameter gibt an, ob nach denen im Quelltext referenzierten
-       WikiLinks in der DB nachgesehen werden soll. Wenn dieser  Parameter 0
-       ist, dann wird eine bereits vorh. $ewiki_links Array stattdessen
-       verwendet, um zu pr�fen ob eine Seite in der DB vorh. ist.
-
-
-   ewiki_link_regex_callback()
-   ---------------------------
-       Aufgerufen aus ewiki_format(). Um ewiki_format() {die eigentliche
-       WikiEngine} weiter von der Datenbank zu trennen, verwendet diese
-       Fkt. das globale array in $ewiki_links, in dem normalerweise vorher
-       schon gefundene WikiSeiten eingetragen wurden (siehe zweiter Param.
-       von ewiki_format) um entweder einen normalen Verweis oder einen
-       Fragezeichen-Link auszugeben (wenn die angegebene Seite noch nicht
-       exisitiert).
-
-
-   ewiki_binary()
-   --------------
-       Wird automatisch aufgerufen, wenn das Skript mit dem ?binary= Anhang
-       aufgerufen wird, um referenzierte / hochgeladene Bilder auszugeben.
-
-
-   ewiki_author()
-   --------------
-       erzeugt einen String, der mit REMOTE_ADDR und $ewiki_author
-       angereichert wurde.
-
-
-   ewiki_database($FUNCTION, $args=array() )
-   ------------------------------------------
-       Diese Funktion ist die "Datenbankabstraktion" in ewiki. Sie enth�lt
-       ''only'' sechs SQL Kommandos, die ersetzt werden m��tem, wenn du eine
-       andere DB verwenden mu�t.
-       Die einzelnen "atomaren" Funktionen sind beschrieben in der
-       orignialen README-Datei.
-
-
-
-
-
-$GLOBALS Verschmutzung
-����������������������
-Zumindest die ewiki_page() Funktion erzeugt einige Variablen im globalen
-Namensraum. Nat�rlich haben auch diese Namen, die sich mit irgendetwas
-aus yoursite.php �berschneiden sollten:
-
- $ewiki_id      - Enth�lt die DB-$id der aktuellen Seite, ist nicht
-                  immer identisch mit $ewiki_title.
-
- $ewiki_action  - Der $action-Parameter, mit dem die Seite angefordert
-                  wurde.
-
- $ewiki_title   - Wird nach dem ersten Aufruf von ewiki_page() gestzt,
-                  am n�tzlichsten um in dem <TITLE> Tag ausgegeben
-                  zu werden - daf�r mu� aber ewiki_page() schon im
-                  Kopfbereich aufgerufen werden, die Ausgabe gepuffert,
-                  damit der Seitentitel noch innerhalb von <HEAD>
-                  ausgegeben werden kann.
-
- $ewiki_script  - Eine Kopie von EWIKI_SCRIPT.
-
- $ewiki_links   - Ist ein Arraym da� in ewiki_format() prodiziert wird, und
-                  alle gesuchten WikiSeitenNamen mit einem Wert von 0 oder 1
-                  assoziiert, je nach dem, ob die Seite existiert oder nicht.
-                  Wird diese variable jedoch auf ==true gesetzt (also kein
-                  Array), wird angenommen, da� alle WikiSeiten existieren.
-
- $ewiki_author  - Der Inhalt dieser Variable wird in der {author}-Spalte
-                  von gespeicherten WikiSeiten abgelegt (zusammen mit
-                  IP:PORT).
-                  Wenn yoursite.php Benutzer kennt und authentifizieren
-                  kann, sollte der Nutzername hier abgelegt werden.
-                  Diese Feld sollte aber NICHT ZUGEM�LLT werden mit
-                  irgendwelchen Bonusinfos.
-
- $ewiki_auth_user  - Enth�lt Namen eines wirklich authentifizierten
-                  Benutzers im _PROTECTED_MODE. Nicht notwendig, wird aber
-                  u.a. gerne von ewiki_auth() und ewiki_auth_user() zur
-                  Vereinfachung verwendet.
-
- $ewiki_ring    - Berechtigungslevel im _PROTECTED_MODE
-                  3 = nur lesen
-                  2 = normaler Benutzer (lesen, editieren, ...)
-                  1 = Moderator (auch Seiten l�schen?)
-                  0 = Administrator (darf alles)
-
- $ewiki_plugins - Dieses array verbindet Aufgabengruppen (z.B. "database"
-                  oder "image_resize") mit Funktionsnamen.
-                  Dies stellt einen wirklich einfachen und dennoch m�chtigen
-                  Weg dar, um ewiki zu erweitern.
-                  Es gibt ein eigenes Kapitel dar�ber in der orig. README.
-
- $ewiki_config  - Ersetzt teilweise die EWIKI_ Konstanten.
-
-Folgende gibt's nich mehr (teilweise in $ewiki_config):
-
- $ewiki_data, $ewiki_interwiki, $ewiki_internal_pages,
-
-
-
-
-
-EWIKI_ Konstanten
-�����������������
-- - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - -
-WARNUNG: Dieser Abschnitt ist grunds�tzlich besonders inaktuell! Von daher
-sollte ein Studium des gleichnamigen Abschnitts in der orig. README-Datei
-wirklich vorgezogen werden!! Viele der neu hinzugekommenen Konstanten werden
-hier schlichtweg nicht erw�hnt, oder inzwischen sogar __falsch__ beschrieben.
-- - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - -
-
-Dieser Abschnitt erkl�rt einige der Konstanten und wie man sie verwenden
-kann, um ewiki nach der eigenen Pfeife tanzen zu lassen.
-
-Normalerweise solltest diese innherhalb von "ewiki.php" angepa�t werden, einige
-sind jedoch mehr wie Statusvariablen ausgelegt und sollten von "yoursite.php"
-in Abh�ngigkeit von dort vorhanden Infos gesetzt werden (wenn dort Benutzer
-eingeloggt sind z.B.).
-Dann ist es gut einige der Konstanten vorzudefinieren (einmal def. Konst.
-k�nnen nicht wieder ge�ndert werden).
-
-
- EWIKI_SCRIPT
-     Wichtigste Einstellung. Wird von ewiki.php verwendet, um Links zu
-     anderen WikiSeiten zu erzeugen.
-
-     Es ben�tigt den Namen von yourscript.php, da� selbst wiederrum
-     ewiki.php geeignet einbindet.
-     Der Name der angefragten WikiSeite wird immer schlicht an den hier
-     definierten TextString angeh�ngt, daher sollter dieser immer in
-     "/" oder "?" oder "?id=" oder "?name=" oder "?page=" enden, damit
-     eine g�ltige URL dabei herauskommt und der SeitenName von ewiki_page()
-     gefunden wird.
-
-     Wenn auf deinem Server mod_rewrite vorhanden ist und funktioniert,
-     k�nntest du diese Konst. auch leer lassen, so alle Anfragen zu
-     http://wiki.example.com/ an das richtige Skript �bergeben werden.
-     Ansonsten ist es gut, wenn eine URL absolut zum Server-Hauptpfad
-     angegeben ist, also z.B. "/~user/wiki/index.php/", damit Browser
-     keine ung�ltigen URLs erzeugen, sobald eine $action vor den
-     Seitennamen gesetzt wird (z.B. "edit/DieseSeite").
-
-     Die Konstante wird von ewiki_script() eingesetzt um URLs zu den
-     angegebenen Seiten zu erstellen (wobei einige Fehler abgefangen
-     werden).
-
- EWIKI_SCRIPT_URL
-     Sollte eine absolute URL enthalten, die ebenfalls zum ewiki-wrapper
-     zeigt, z.B. "http://www.example.com/wiki/?id="
-
-
- EWIKI_DB_TABLE_NAME
-     Setzt den Namen der MySQL DB Tabelle fest, die erzeugt und verwendet
-     werden soll, um alle WikiSeiten abzulegen.
-
-
- EWIKI_PAGE_INDEX
-     Definiert den Namen der WikiSeite, die als Startseite angezeigt werden
-     soll.
- EWIKI_PAGE_NEWEST
-     Name (intern erzeugt) der Seite, die List der zuletzt hinzugef�gten
-     Seiten enth�lt.
- EWIKI_PAGE_SEARCH
-     Enth�lt den WikiSeitenNamen f�r dei SuchFunktion.
-
-
- EWIKI_CONTROL_LINE
-     Wenn auf 0 gestzt, wird die Zeile unter einer WikiSeite mit
-     "DieseSeite�ndern, SeitenInfo, ..." nicht angezeigt.
-     In diesem Fall sollte der Edit-Link in yoursite.php erzeugt werden.
-     Besser ist es normalerweise das Aussehen der Ausgabe in
-     ewiki_control_links() selbst zu �ndern.
-
- EWIKI_AUTO_EDIT
-     Bei 1 (voreinstellung) wird automatisch eine Edit-Box f�r
-     nicht-exisiterende Seiten angezeigt, ansonsten wird eine ZwischenSeite
-     ("Bitte �ndere mich!") angezeigt (wie in PhpWiki).
-
- EWIKI_LIST_LIMIT
-     Maximale Anzahl von Seiten, die in den generierten Listen angezeigt
-     werden sollen (Suche, ...)
-
- EWIKI_PRINT_TITLE
-     Wenn 0 werden keine SeitenTitel (WikiSeiten und InterneSeiten)
-     angeziegt.
-
-
- EWIKI_ALLOW_HTML
-     Normalerweise sollte im Wiki keine HTML erlaubt sein - b�ses JavaScript
-     und <brokenHTML/>, andere Leute nerven.
-
-     Siehe orig. README f�r mehr Informationen.
-
-
- EWIKI_RESCUE_HTML
-     �berholt, siehe plugins/markup_rescuehtml.php
-
-
- EWIKI_DB_F_TEXT
-     Dieses Flag wird f�r normale WikiSeiten in der DB gesetzt.
-
- EWIKI_DB_F_BINARY
-     F�r bin�ren Inhalt in der DB.
-
- EWIKI_DB_F_DISABLED
-     DB-Eintrage werden hiermit ausgeknippst.
-
- EWIKI_DB_F_HTML
-     Erlaubt die Verwendung von HTML im WikiQuelltext, unabh�ngig von
-     EWIKI_ALLOW_HTML.
-
- EWIKI_DB_F_READONLY
-     WikiSeite kann nicht ver�ndert werden, so dieses Flag gesetzt ist.
-
- EWIKI_DB_F_WRITEABLE
-     Umkehrung von READONLY, nur n�tzlich wenn zuvor alle Seiten mit
-     EWIKI_EDIT_AUTHENTICATE schriebgesch�tzt wurden.
-
-
- EWIKI_ALLOW_OVERWRITE
-     F�r eingeloggte nutzer kann yoursite.php diese Konst. auf 1 setzen, um
-     auch das �ndern von schreibgesch�tzten Seiten zu erlauben.
-
- EWIKI_EDIT_AUTHENTICATE
-     Hiermit kann man ewiki dahingehend kaputt machen, da� alle Seiten
-     schreibgesch�tzt werden, und nur ver�nderbar sind, so yoursite.php
-     $ewiki_author setzt.
-
-
- EWIKI_SCRIPT_BINARY
-     Um bin�re Daten ausgeben zu k�nnen, mu� hier ein wrapper-script
-     angegeben werden, da� ein Datenbank-Verbindung �ffnet und keine
-     Textausgaben erzeugt, bevor nicht ewiki.php eingebunden wurde,
-     da sonst nur Datenm�ll ausgegeben w�rde.
-
-     Um alle binary-Funktionalit�t (Bilder hochladen / cachen) loszuwerden,
-     einfach diese Konstante auf "" setzen, und die folgenden zwei auf 0:
-
-
- EWIKI_CACHE_IMAGES
-     Bilder zwischenspeichern.
-
- EWIKI_IMAGE_MAXSIZE
-     Maximale Gr��e von Bildern die in der DB abgelegt werden sollen.
-
- EWIKI_IMAGE_RESIZE
-     Bilder herunterskalieren, wenn zu gro�.
-
- EWIKI_IDF_INTERNAL
-     Wird verwendet um hochgeladene Bilder zu identifizieren. Bitte
-     im laufenden Betrieb nicht �ndern.
-
-
- EWIKI_ADDPARAMDELIM
-     Automatisch definiert, enth�lt entweder "?" oder "&", abh�ngig von
-     EWIKI_SCRIPT.
-
-
- EWIKI_T_*
-     �berholt, siehe ewiki_t() und $ewiki_t[] in der englischen README
-
-
- EWIKI_CHARS_U
- EWIKI_CHARS_L
-     Erlaubte Zeichen in WikiSeitenNamen (gro�e und kleine Letter). Hiermit
-     kann man das wiki lokalisieren; deutsche Umlaute sind schon enthalten.
-
- UNIX_MILLENNIUM
-     Sehr wichtiges Ereignis ;)
-
-
-Im tools/ Ordner ist ein kleines Script, mit dem man die erw�hnten
-SeitenFlags �ndern kann.
-
-
-
-$ewiki_config[] array
-���������������������
-Einige der EWIKI_ Konstanten wurden durch Eintr�ge im $ewiki_config[] Array
-ersetzt oder erg�nzt (die Konstanten k�nnen weiterhin zur Voreinstellung
-verwendet werden). Der Vorteil dieses Arrays ist, da� die Einstellungen auch
-zur Laufzeit ge�ndert werden k�nnen.
-
-F�r eine komplette und (einigerma�en) aktuelle �bersicht bem�he bitte die
-englischsprachige README.
-
-
-
-
-  -------------------------------------------------------------------------
-
-
-
-
-Nur WikiQuelltextTransformation einsetzen
-�����������������������������������������
-Die ewiki_format Funktion war entworfen, um sie auch unabh�ngig von dem
-restlichen WikiSkript einsetzen zu k�nnen.
-Ben�tigt normalerweise nur den "wiki_source" Parmeter und erzeugt die
-HTML-Seite daraus.
-    ewiki_format($wiki_source, 0);
-
-Alles was man noch anpassen mu� ist die $ewiki_links Variable. Setze
-$ewiki_links=true ("true" und nicht "1") so da� ewiki_format() sp�ter
-annimmt alle WikiSeiten w�rden existieren.
-
-Wers eilig hat, kann auch die extrahierte Variante fragments/wiki_format.inc
-verwenden, die Frank Luithle beigesteuert hat.
-
-
-
-
-  -------------------------------------------------------------------------
-
-
-
-
-Ohne MySQL DB verwenden
-�����������������������
-Sollte dein Provider keine MySQL Datenbank f�r dich bereithalten, kannst
-du das plugin "db_flat_files.php" verwenden (einfach include("plugins/...");
-aufrufen um es zu laden).
-
-Alle WikiSeiten werden dann in Textdateien in einem nur daf�r
-bereitgestelltem Ordner gespeichert. Stelle hierzu noch die Konstante
-EWIKI_DBFILES_DIRECTORY in der Datei "ewiki.php" passend ein ("/tmp" w�rde
-jedesmal gel�scht, wenn der Server neu startet).
-Das Verzeichnus mu� relativ zum ewiki.php script angegeben werden, oder
-absolut zum Serverhauptverzeichnis, nicht aber relativ zum DocumentRoot
-deines Webspeicherplatzes!  In diesem Beispiel w�re "./pages" richtig:
-
-Erstelle ein neues Verzeichnis (via FTP-Programm) und gib dem Webserver
-Schreibzugriff daf�r mit dem Befehl " chmod 777 ./pages ".
-ftp> cd .../ewiki
-ftp> mkdir pages
-ftp> chmod 777 pages
-ftp> ls
--rw----r--    1 deinname deinname    57024 01. Jan 00:00 ewiki.php
--rw----r--    1 deinname deinname      512 01. Jan 00:00 index.php
-drw----r-x    2 deinname deinname     4096 01. Jan 00:00 init-pages
-drwxrwxrwx    2 deinname deinname     4096 25. Feb 23:59 pages
-drw----r-x    5 deinname deinname     4096 01. Jan 00:00 plugins
--rw----r--    1 deinname deinname    15826 01. Jan 00:00 README.de
-ftp> quit
-
-Mit einem graphischem FTP-Programm gibt es auch immer die Mglk. die
-"Dateizugriffsrechte" einzustellen.
-
-
-
-db_fast_files
-�������������
-Diese neuere Version von db_flat_files, speichert die WikiSeiten
-komprimiert in einem Bin�r-Format (kann man nicht mehr mit Editor
-ansehen und bearbeiten). Zus�tzlich wurde der HitZ�hler aktiviert.
-
-db_fast_files wurde in db_flat_files integriert, so da� das neue
-Format jetzt nur noch �ber eine Konstante aktiviert werden mu�
-(beide Dateiformate k�nnen gleichzeitig in der DB vorhanden sein).
-F�r die schnellere Variante aktiviere in "plugins/db_flat_files.php"
-die entsprechende Konstante:
-   define("EWIKI_DB_FAST_FILES", 1);
-(Diese Einstellung k�nntest du aber auch schon in der "config.php"
-eintragen.)
-
-Zus�tzliche Konstante: EWIKI_DBFILES_GZLEVEL sagt wieviel Zeit
-beim Komprimieren verschwendet werden soll:
-0 - keine Komprimierung
-1 - ein ganz klein wenig Kompr.
-2 - Voreinstellung, schnell
-5 - normaler Wert in zlib, gute Komprimierung
-9 - langsam f�r allerbeste Kompression
-
-Dieses plugin wurde von Carsten Senf beigesteuert.
-
-
-
-
-  --------------------------------------------------------------------------
-
-
-
-
-B�seB�ckSl�shes
-���������������
-Wenn auf deinen Seiten p�tzlich viele "\" R�ckw�rtsSchr�gStriche
-auftauchen liegt das an einer Fehlkonfiguration von PHP. In �lteren
-Versionen war leider immer die Option "magic_slashes_gpc" aktiviert
-(siehe auch php.ini).
-
-Bitte am besten deinen WebserverProvider das zu �ndern. Wenn du aber bei
-einem der BilligHoster (umsonst wie sourceforge.net oder tripod.com) bist,
-gilt wie immer: einem geschenkten Gaul...
-Dann verwende bitte "fragements/strip_wonderful_slashes.php", um das
-Problem zumindest zu umschiffen, oder �ndere deine .htaccess Datei (Apache)
-wie darin beschrieben.
-
-
-
-  --------------------------------------------------------------------------
-
-
-
-Pa�w�rter und tools/
-��������������������
-Die tools/ sind gef�hrlich und daher per Voreinstellung nicht ohne weiteres
-Nutzbar. In der Datei "tools/t_config.php" wird das Script
-"fragmenst/funcs/auth.php" geladen, da� f�r den Browser-Login-Dialog
-verantwortlich ist. Wenn du also die tools/ verwenden willst, mu�t du dort
-zuerst einen Benutzer mit Pa�wort eintragen, sonst geht nix.
-
-Um hingegen dein Wiki zu sch�tzen, so da� nur einige wenige Personen die
-Seiten editieren k�nnen, lie� dir bitte die Datei "plugins/auth/README.auth"
-durch (leider nur in Englisch). Sie beschreibt den _PROTECTED_MODE und
-stellt die entsprechenden Plugins vor.
-
-