
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
   version: 1
   flags: 1
   author: 127.0.0.1:3054
   created: 1046532697
   lastmodified: 1046532697
   refs: \nErfurtWiki\nNewestPages\n
   
   !! 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.


