68c086066c3957f9b4fd195a080686e70b28c391
[atutor.git] / mods / wiki / doc / README.de
1
2 README.de
3 ¯¯¯¯¯¯¯¯¯
4 Dies ist eine teilweise Übersetzung der [README] Datei, die weiterhin als
5 Referenz verwendet sollte, da hier nur ein paar allgemeine und Setup-
6 Informationen enthalten sind.
7
8       1  Was ist das?
9     1.1  Warum "ErfurtWiki"?
10   1.1.1  Besondere Features
11   1.1.2  WikiAlternativen
12     1.2  ProjektSeiten
13   1.2.1  Support bekommen
14   1.2.2  Lizenz
15   1.2.3  Autoren
16
17       2  Wie jetzt?
18     2.1  In yoursite.php integrieren
19     2.2  Den WikiSeitenNamen bestimmen
20   2.9.1  WikiSprache einstellen (deutsch)
21
22       3  Im Detail
23     3.1  die ewiki_ Funktionen
24     3.2  $GLOBALS Verschmutzung
25     3.3  die EWIKI_ Konstanten
26     3.4  $ewiki_config[] array
27
28     4.1  Nur die WikiQuelltextTransformation einsetzen
29
30   6.1.2  Ohne MySQL DB verwenden     (WICHTIG)
31   6.1.3  db_fast_files
32   7.3.3  BöseBäckSläshes \\\\"       (WICHTIG)
33
34   9.5.5  Paßwörter und tools/
35
36
37
38   -------------------------------------------------------------------------
39
40
41
42 Was ist das?
43 ¯¯¯¯¯¯¯¯¯¯¯¯
44 Dies ist eine "WikiWikiWeb" Bibliothek, die in der Skriptsprache PHP
45 implementiert ist. Ein WikiWiki ist eine Webseite, die von wirklich jedem
46 verändert/ergänzt werden kann, der dort vorbeischaut (ohne vorhergehenden
47 Registrierungskram).
48
49 Es sollte relativ einfach in bestehende Websites integrierbar sein,
50 weil es eben kein komplettes Script sondern eher eine Bibliothek ist,
51 die kein fertiges Seitenlayout erzwingt. Stattdessen können die
52 erzeugten WikiSeiten als Inhalt in das Layout einer bestehenden Seite
53 eingebunden werden.
54
55
56
57 Warum "ErfurtWiki"?
58 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
59 Der Projektname ist Zufall, hat sich der Autor ausgesucht (Heimatstadt),
60 und der interne Projektname ist übrigens "ewiki".
61
62
63
64         Besondere Eigenschaften
65         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
66         ewiki ist nicht einfach nur schon-wieder-ein-neues-Wiki, sondern
67         hat einige besondere Features:
68
69         - ewiki besteht im Grunde nur aus einer einzigen Datei (monolithisch,
70           siehe auch "monsterwiki" in der [README])
71         - es werden keine vordefinierte Layouts werden aufgezwungen, das
72           Wiki läßt sich einfach in existierende Seiten einbauen
73         - es ist vergleichsweise schnell, reguläre Ausdrücke werden zwar
74           verwendet, aber nicht so exzessiv wie in anderen Wikis
75           (hauptsächlich einfache und flinke String-Funktionen)
76         - der Funktionsumfang ist inzwischen beachtlich :)
77         - anders als 95% aller Wikis ist es mal nicht GPL
78         - beherrscht Groß-/Kleinschreibungs-unempfindliche WikiLinks,
79           verschiedenste Datenbanktypen, und alle erweiterten Funktionen
80           sind rein optional (mächtige Pluginschnittstelle)
81
82
83
84         WikiAlternativen
85         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
86         Wem ewiki nicht zusagen sollte, dem seien folgende Wiki engines ans
87         Herz gelegt (testen schadet ja nix):
88
89         - PWiki2 ist der neue Stern am Himmel PHP-basierter Wikis, es wird
90           aktuell sehr intensiv und schnell weiterentwickelt, immer einen
91           Blick wert: http://www.pwiki2.org/
92         - PmWiki ist eine der ausgereifteren Wiki-Umsetzungen für PHP; gibt
93           es schon eine ganze Weile, hat eine große Usergemeinde und wird
94           aktiv gepflegt und weiterentwickelt. http://pmwiki.org/
95         - WakkaWiki von Hendrik Mans ist auch eine sehr mächtige PHP
96           Umsetzung, siehe http://www.wakkawiki.com/
97         - Miki ist eine kleine WikiImplementierung in PHP von Jukka
98           Zitting.  http://miki.sourceforge.net/
99         - coWiki - ist komplett OOP and das Quellcode-Layout ist großartig
100           (nur die Doku scheisse). Sehr große Funktionsvielfalt, aber ist
101           mehr ein CMS als ein Wiki (Authentifizierungsquark) und hat auch
102           etwas merkwürdiges Markup. Aber bitte selber testen:
103           http://cowiki.org/
104         - PhpWiki has a more complete approach than this WikiWare,
105           get it from http://freshmeat.net/projects/phpwiki,
106           it has support for different database types, features localization
107           and comes with an integrated admin area and also lots of plugins
108           made by its gigantic user base and development group. It initially
109           inspired the ewiki project, but also was the reason for starting
110           it.
111         - PhpWiki hat einen etwas ganzheitlicheren Ansatz als ewiki,
112           siehe http://freshmeat.net/projects/phpwiki,
113           unterstützt versch. Datenbanktypen, Lokalisierung, integrierter
114           Administrationsbereich und jede Menge Plugins (fest verdrahtet)
115           durch die riesige Benutzergemeinde und immer noch aktive
116           Entwicklungsabteilung. War anfänglich Inspiration für ewiki -
117           aber auch der eigentliche Auslöser ein neues Wiki in die Welt zu
118           setzen.
119
120         Der BESTE PLATZ um nach teuflischen Konkurrenz-Implementierungen zu
121         sehen ist:
122         http://c2.com/cgi/wiki?WikiEngines
123
124         Und es gibt auch eine neue WikiEngine Vergleichs-Tabelle, in der
125         die verschiedenen Wikis nach Features sortiert werden sollen:
126         http://wikifeatures.wiki.taoriver.net/moin.cgi/WikiEngine
127
128         Warum wir die "Konkurrenz" empfehlen?  Ganz einfach: ewiki ist KEIN
129         kommerzielles Projekt - unser Leben hängt nicht davon ab, ob wir
130         tausende von Benutzern haben; es macht also auch keinen Sinn jemanden
131         zu überreden es zu verwenden. Obwohl ewiki zwar recht flexibel ist,
132         kann es kaum DIE Lösung für jedermann sein (wär doch bescheurt,
133         oder?)
134         Die freie Wahl zu haben ist eine feine Sache, und die FreeSoftware-
135         Gemeinde bietet im Bereich Wiki eine ganze Menge - also probier'
136         doch einfach selber aus, welches Wiki für DICH am meisten bringt.
137
138
139 ProjektSeiten
140 ¯¯¯¯¯¯¯¯¯¯¯¯¯
141 freshmeat
142 - http://freshmeat.net/ewiki
143
144 demo:
145 - http://erfurtwiki.sourceforge.net/
146
147 neueste Versionen (instabile EnwicklerVersionen):
148 - http://erfurtwiki.sourceforge.net/downloads/
149
150 mailing list archiv
151 - http://www.freelists.org/archives/ewiki/
152
153
154
155         Support bekommen
156         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
157         Hilfe bei der Installation gibt's natürlich, und selbstverständlich
158         sind wir auch dankbar für jeden Hinweis über bestehende Probleme und
159         Fehler (bekanntermaßen ist die REAMDE noch nicht ausführlich genug
160         und stellenweise überhaupt keine Hilfe).  Bevor du aber einen
161         BugReport versendest, lies dir bitte folgende Anleitung durch
162         (absolut notwendig um KOSTENLOSEN support zu bekommen):
163
164         http://www.lugbz.org/documents/smart-questions_de.html
165
166         Danach bitte nicht zögern, einen der Autoren zu kontakten oder
167         einfach eine Nachricht in BugReports oder UserSuggestion auf unserer
168         ProjektSeite zu hinterlassen.  Wenn du dich auf unserer
169         http://erfurtwiki.sourceforge.net/?MailingList anmeldest, hast du
170         die Möglichkeit Hilfe für dein Problem von einer größeren Gruppe von
171         Leuten zu bekommen (an- und wieder abmelden geht schnell).
172
173
174
175         Lizenz
176         ¯¯¯¯¯¯
177         Dieses "Programm" wird als "Public Domain" vertrieben. Public Domain
178         ist wie "FreeWare", nur ein bischen mehr frei ;-> Man kann sich das
179         vorstellen, wie die GPL ohne an die GPL gebunden zu sein.
180
181         Da dies ein freies (Bier) Stück Software ist, kann mich natürlich
182         niemand für irgendwelche Fehler oder all die WIRKLICH SCHLIMMEN
183         FESTPLATTEN-SCHÄDEN verantwortlich machen, die bei der Verwendung
184         entstehen könnten ;>
185
186
187
188         Autoren
189         ¯¯¯¯¯¯¯
190         Mario Salzer <milky*erphesfurt·de> icq95596825 (auch Yahoo, Jabber)
191         Andy Fundinger <andy*burgiss·com> von http://burgiss.com/
192
193         Und alle anderen wurden in die Datei CREDITS verbannt  ;->
194
195         Dies ist ein relativ neues Projekt. Um es zu verbessern, bin ich
196         sehr auf Rückmeldungen angewiesen. Jede Mail ist ein wertvoller
197         Beitrag!
198
199
200
201
202   -------------------------------------------------------------------------
203
204
205
206
207 Wie jetzt?
208 ¯¯¯¯¯¯¯¯¯¯
209 ewiki ist supi-einfach zu installieren, du brauchst nur einen Webserver
210 mit Unterstützung für PHP (4.1 oder später). Es läuft auch ohne SQL-
211 Datenbank, allerdings mußt du dann ein paar zusätzliche Einstellungen
212 machen (siehe "db/flat_files" in der [README.plugins]).
213 Wenn du den Tarball entpackt hast, reicht es aber meistens einfach den
214 Browser darauf zu richten [http://localhost/ewiki/], um es zum Laufen zu
215 bekommen.
216
217 In den folgenden Abschnitten geht es darum, das Wiki in eine bestehende
218 Seite / -Vorlage zu integrieren. Andernfalls kannst du auch einfach eines
219 der mitgelieferten Layouts aus examples/ verwenden, ohne daß du noch groß
220 irgendwas einrichten müßtest.
221
222 Falls du keinen Bock hast, dir hier irgendwas durchzulesen, einfach nur
223 ein Wiki willst, wird dich sicher unser neuer cooler web-install-service
224 interessieren:
225 http://ewiki.berlios.de/installer/
226
227
228
229 In yoursite.php integrieren
230 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
231 In den nächsten Abschitten, soll mit dem Begriff "yoursite.php" der
232 Teil deiner bestehenden Seite verstanden werden, der das Seitenlayout
233 erzeugt (der also zumindest die <html><body> Tags um die Ausgaben von
234 ewiki.php bastelt).
235  
236     <?php
237        mysql_connect("localhost", "DB-USER-NAME", "PASSWORD");     #[1]
238        mysql_query("use DATABASE-NAME-HERE");
239
240        define("EWIKI_SCRIPT", "yoursite.php?page=");               #[2]
241        include("ewiki.php");                                       #[3]
242     ?>
243     <HTML>
244      <head>...</head>
245     <BODY>
246     <?php
247        echo  ewiki_page();                                         #[4]
248     ?>
249     </BODY>
250     </HTML>
251    
252 [1]  Die ersten beiden Befehle öffnen eine Verbindung zur MySQL-Datenbank.
253 Normalerweise würde man das Ergebnis von mysql_conect() in einer Variable
254 wie "$db" ablegen, aber da PHP ohnehin nicht auf deren Verwendung besteht,
255 wenn es nur eine DB-Verbindung gibt, wird eine solche Variable in
256 "ewiki.php" auch gar nicht verwendet (und der Name dieser Variable wäre
257 damit hier egal).
258
259 [2]  Der Wert in der define() Zeile sagt ewiki wie die Hyperlinks zu den
260 referenzierten WikiSeiten lauten müssen, damit ewiki.php auch für die
261 nächste angeklickte WikiSeite aufgerufen wird.
262 Wenn du nur ein einziges "yoursite.php" Skript hast, wirst du den Wert
263 direkt in "ewiki.php" verändern wollen.
264
265 [3]  Das include("ewiki.php") lädt endlich die ewiki "Bibliothek" und
266 setzt alle bis hierher noch nicht definierten EWIKI_ Konstanten.
267
268 [4]  Der Aufruf der ewiki_page() Funktion gibt diejenige WikiSeite zurück,
269 die vom Browser angefragt wurde. Du mußt hier "echo" davorsetzen, denn
270 sonst wird der Text nicht ausgegeben (verpufft im PHP-Nirvana) - ewiki
271 gibt die erzeugte Seite nicht selber aus.
272
273 Beachte, daß vor dem allerersten <HTML>-Tag zunächst einmal ein <?php-
274 Code-Block stehen muß, in dem die "ewiki.php" (oder auch "config.php")
275 geladen werden spollte. Wenn das nämlich nicht rechtzeitig geschieht,
276 funktionieren später die hochgeladenen Bilder und Dateien nicht.
277
278
279
280         Den WikiSeitenNamen bestimmen
281         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
282         Wenn du ewiki_page() einfach so aufrufst wie im oberen Beispiel angegeben
283         (empfohlen), dann wird es versuchen, den Namen der angefragten Seite selber
284         zu ermmitteln ($_SERVER["PATH_INFO"] oder GET-Variablen '?id=' oder '?name='
285         oder '?page=' oder '?file=' in $_REQUEST["name"]). 
286
287         Wenn yoursite.php aber einen anderen Weg benutzt (andere Parameternamen),
288         um den WikiSeitenNamen zu übergeben, dann kann man ihn schlicht als ersten
289         Parameter angeben:
290
291           ewiki_page( $id = "WikiSeitenNanem" );
292
293         Example-4.php zeigt das beispielsweise, um die Liste der aktualisierten
294         Seiten einzubinden.
295
296
297
298
299
300 WikiSprache einstellen (deutsch)
301 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
302 Ich hab es jetzt schon einige Leute behaupten hören, aber auch beim
303 IntranetExplodierer kann man die "bevorzugten Sprachen" irgendwo einstellen.
304 Wers nicht findet, kann ja auch gleichmal auf einen aktuellen Browser
305 wechseln - das lohnt sich nicht nur wegen der vielen Seiten, die es dann
306 plötzlich doch auf Deutsch gibt!
307
308 Wer es partou nicht hinbekommt, kann natürlich die deutsche Sprache für
309 ewiki erzwingen; hilfreich hierfür ist z.B. die include()-Datei
310 "fragments/force_lang_de.php".
311
312 Es funktioniert aber auch mit diesem Befehl, der irgendwo in ewiki.php,
313 config.php oder yoursite.php eingefügt werden kann (nicht empfohlen):
314
315 $_SERVER["HTTP_ACCEPT_LANGUAGE"] = "de; q=1.0, en; q=0.2, eo, nl";
316
317
318
319
320   -------------------------------------------------------------------------
321
322
323
324
325 Im Detail
326 ¯¯¯¯¯¯¯¯¯
327 Die MySQL DB Tabellenstruktur ist zu einem gewissen Grad kompatibel mit der
328 des allseits bekannten »PHPWiki« (normalerweise reicht es EWIKI_DB_TABLE_NAME
329 auf "wiki" zu ändern, um PhpWikis DB weiterzuverwenden).
330 Dies ist der MySQL Befehl, der die DB-Tabelle erstellt (beim ersten Start,
331 automatisch):
332
333     CREATE TABLE ewiki (
334         pagename VARCHAR(160) NOT NULL,
335         version INTEGER UNSIGNED NOT NULL DEFAULT 0,
336         flags INTEGER UNSIGNED DEFAULT 0,
337         content MEDIUMTEXT,
338         author VARCHAR(100) DEFAULT 'ewiki',
339         created INTEGER UNSIGNED DEFAULT 0,
340         lastmodified INTEGER UNSIGNED DEFAULT 0,
341         refs TEXT,
342         meta TEXT,
343         hits INTEGER UNSIGNED DEFAULT 0,
344         PRIMARY KEY id (pagename, version)
345     )
346
347 Den Spaltennamen {pagename} mochte ich eigentlich nicht, aber weil das der
348 offensichtlich einzige Unterschied zur PhpWiki-Tabelle war, kam mir die Idee
349 mit der Kombatibilität un so hab ich das adaptiert.
350 Dummerweise muß nun die ewiki_database() Funktion "pagename" ständig von
351 und nach "id" übersetzen.
352
353 Die Spalte {version} wird zur Speicherung der verschiedenen abgelegten
354 Seitenänderungen verwendet. In anderen Wikis gibt es zu diesem Zweck eine
355 Bonus-tabelle wie "backup" oder "history", aber ich hab den Sinn von sowas
356 bisher nicht verstanden; und daher gibt es in ewiki nur diese eine Tabelle
357 (und das scheint absolut zu reichen)!
358 Die erste {version} einer Seite erhält die Nummer 1. Eine bestehende
359 Seiten {version} wird niemals überschrieben werden => sehr sicherer MySQL-
360 Einsatz.
361
362 Mehr über die {flags} in dem entsprechenden Abschnitt in der README. Das
363 Feld {content} enthält natürlich den WikiSeitenQuelltext. {created} und
364 {lastmodified} enthalten die entsprechenden Zeitangaben im UNIX format.
365
366 {refs} enthälte eine "\n" - getrennte Liste von referenzierten WikiSeiten.
367 Der Code um diese List zu erzeugen ist etwas unsauber, so daß oftmals
368 GeisterSeiten aufgeführt sind. Wieauchimmer, daß beeinträchtigt ewiki
369 nicht wirklich, und eine Korrektur wäre Zeit- und Geschwindigkeits-
370 verschwendung.
371
372 {meta} kann Bonusinfos enth, so daß die Tabellenstruktur nicht bei jeder
373 Erweiterung geändert werden muß. Aktuell nur für Binärdaten (Bilder)
374 verwendet.
375
376 {hits} zählt die Seitenaufrufe, und ist nicht in {meta} integriert, weil
377 separat schneller und einfacher zu verwenden.
378
379 Die ewiki DB Tabelle kann nicht nur Texteseiten enthalten, sondern auch
380 binären Inhalt (vornehmlich Bilder), siehe {flags}.
381
382 Das Ein-Tabellen-Konzept hat es übrigens auch recht einfach gemacht, das
383 Datei-basierte DB-Backend zu entwickeln. Eine Beispieldatei:
384
385    id: WikiPageName\r
386    version: 1\r
387    flags: 1\r
388    author: 127.0.0.1:3054\r
389    created: 1046532697\r
390    lastmodified: 1046532697\r
391    refs: \nErfurtWiki\nNewestPages\n\r
392    \r
393    !! WikiSourceContent
394    <more-text>...
395
396
397
398
399 ewiki_ Funktionen
400 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
401 Einige der Basis-Funktionen aus ewiki.php können getrennt von den anderen
402 verwendet werden, andere sind ausgelegt um durch bessere Implementierungen
403 ersetzt zu werden.
404
405
406    ewiki_page($id)
407    ---------------
408        Hauptfunktion, die die angefragte WikiSeite (oder die mit $id
409        angegebene) aus der DB holt, und mit ewiki_format() die fertige
410        HTML-Seite erzeugt.
411        Wenn die angefragte Seite nicht existert, wird eine edit-Box
412        zurückgegeben.
413
414
415    ewiki_page_...()
416    ----------------
417        Die meisten Fkt. mit diesem Prefix wurden aus der Hauptfkt.
418        herausgetrennt, um ewiki übersichtlicher und leichter erweiterbar
419        zu machen.
420        Die meisten enthalten Code um spezielle/interne Seiten zu erzeugen
421        (Suche, Neuest, Info, und das Edit <FORMular>, ...)
422
423
424    ewiki_script()
425    --------------
426        Erzeugt URL aus angegebener Seiten $id und $action, verwendet dazu
427        die EWIKI_SCRIPT-Konstante. Dieser wrapper ermöglicht es auch die
428        eigentlich reservierten Schrägstriche in Seitennamen zu verwenden.
429
430
431    ewiki_control_links($id, $data)
432    -------------------------------
433        Gibt die Zeile mit "DieseSeiteÄndern, SeitenInfo, ... links" aus.
434
435
436    ewiki_format($wiki_source, $scan_links=1, $html_allowed=0)
437    ----------------------------------------------------------
438        Erzeugt die formatierten (HTML) Ausgabe für den übergebenen
439        WikiQuelltext.
440
441        Der zweite Parameter gibt an, ob nach denen im Quelltext referenzierten
442        WikiLinks in der DB nachgesehen werden soll. Wenn dieser  Parameter 0
443        ist, dann wird eine bereits vorh. $ewiki_links Array stattdessen
444        verwendet, um zu prüfen ob eine Seite in der DB vorh. ist.
445
446
447    ewiki_link_regex_callback()
448    ---------------------------
449        Aufgerufen aus ewiki_format(). Um ewiki_format() {die eigentliche
450        WikiEngine} weiter von der Datenbank zu trennen, verwendet diese
451        Fkt. das globale array in $ewiki_links, in dem normalerweise vorher
452        schon gefundene WikiSeiten eingetragen wurden (siehe zweiter Param.
453        von ewiki_format) um entweder einen normalen Verweis oder einen
454        Fragezeichen-Link auszugeben (wenn die angegebene Seite noch nicht
455        exisitiert).
456
457
458    ewiki_binary()
459    --------------
460        Wird automatisch aufgerufen, wenn das Skript mit dem ?binary= Anhang
461        aufgerufen wird, um referenzierte / hochgeladene Bilder auszugeben.
462
463
464    ewiki_author()
465    --------------
466        erzeugt einen String, der mit REMOTE_ADDR und $ewiki_author
467        angereichert wurde.
468       
469
470    ewiki_database($FUNCTION, $args=array() )
471    ------------------------------------------
472        Diese Funktion ist die "Datenbankabstraktion" in ewiki. Sie enthält
473        ''only'' sechs SQL Kommandos, die ersetzt werden müßtem, wenn du eine
474        andere DB verwenden mußt.
475        Die einzelnen "atomaren" Funktionen sind beschrieben in der
476        orignialen README-Datei.
477
478
479
480
481
482 $GLOBALS Verschmutzung
483 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
484 Zumindest die ewiki_page() Funktion erzeugt einige Variablen im globalen
485 Namensraum. Natürlich haben auch diese Namen, die sich mit irgendetwas
486 aus yoursite.php überschneiden sollten:
487
488  $ewiki_id      - Enthält die DB-$id der aktuellen Seite, ist nicht
489                   immer identisch mit $ewiki_title.
490
491  $ewiki_action  - Der $action-Parameter, mit dem die Seite angefordert
492                   wurde.
493
494  $ewiki_title   - Wird nach dem ersten Aufruf von ewiki_page() gestzt,
495                   am nützlichsten um in dem <TITLE> Tag ausgegeben
496                   zu werden - dafür muß aber ewiki_page() schon im
497                   Kopfbereich aufgerufen werden, die Ausgabe gepuffert,
498                   damit der Seitentitel noch innerhalb von <HEAD>
499                   ausgegeben werden kann.
500
501  $ewiki_script  - Eine Kopie von EWIKI_SCRIPT.
502
503  $ewiki_links   - Ist ein Arraym daß in ewiki_format() prodiziert wird, und
504                   alle gesuchten WikiSeitenNamen mit einem Wert von 0 oder 1
505                   assoziiert, je nach dem, ob die Seite existiert oder nicht.
506                   Wird diese variable jedoch auf ==true gesetzt (also kein
507                   Array), wird angenommen, daß alle WikiSeiten existieren.
508
509  $ewiki_author  - Der Inhalt dieser Variable wird in der {author}-Spalte
510                   von gespeicherten WikiSeiten abgelegt (zusammen mit
511                   IP:PORT).
512                   Wenn yoursite.php Benutzer kennt und authentifizieren
513                   kann, sollte der Nutzername hier abgelegt werden.
514                   Diese Feld sollte aber NICHT ZUGEMÜLLT werden mit
515                   irgendwelchen Bonusinfos.
516
517  $ewiki_auth_user  - Enthält Namen eines wirklich authentifizierten
518                   Benutzers im _PROTECTED_MODE. Nicht notwendig, wird aber
519                   u.a. gerne von ewiki_auth() und ewiki_auth_user() zur
520                   Vereinfachung verwendet.
521
522  $ewiki_ring    - Berechtigungslevel im _PROTECTED_MODE
523                   3 = nur lesen
524                   2 = normaler Benutzer (lesen, editieren, ...)
525                   1 = Moderator (auch Seiten löschen?)
526                   0 = Administrator (darf alles)
527
528  $ewiki_plugins - Dieses array verbindet Aufgabengruppen (z.B. "database"
529                   oder "image_resize") mit Funktionsnamen.
530                   Dies stellt einen wirklich einfachen und dennoch mächtigen
531                   Weg dar, um ewiki zu erweitern.
532                   Es gibt ein eigenes Kapitel darüber in der orig. README.
533
534  $ewiki_config  - Ersetzt teilweise die EWIKI_ Konstanten.
535
536 Folgende gibt's nich mehr (teilweise in $ewiki_config):
537
538  $ewiki_data, $ewiki_interwiki, $ewiki_internal_pages,
539
540
541                   
542
543
544 EWIKI_ Konstanten
545 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
546 - - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - -
547 WARNUNG: Dieser Abschnitt ist grundsätzlich besonders inaktuell! Von daher
548 sollte ein Studium des gleichnamigen Abschnitts in der orig. README-Datei
549 wirklich vorgezogen werden!! Viele der neu hinzugekommenen Konstanten werden
550 hier schlichtweg nicht erwähnt, oder inzwischen sogar __falsch__ beschrieben.
551 - - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - WARNUNG -  WARNUNG - WARNUNG - -
552
553 Dieser Abschnitt erklärt einige der Konstanten und wie man sie verwenden
554 kann, um ewiki nach der eigenen Pfeife tanzen zu lassen.
555
556 Normalerweise solltest diese innherhalb von "ewiki.php" angepaßt werden, einige
557 sind jedoch mehr wie Statusvariablen ausgelegt und sollten von "yoursite.php"
558 in Abhängigkeit von dort vorhanden Infos gesetzt werden (wenn dort Benutzer
559 eingeloggt sind z.B.).
560 Dann ist es gut einige der Konstanten vorzudefinieren (einmal def. Konst.
561 können nicht wieder geändert werden).
562
563
564  EWIKI_SCRIPT
565      Wichtigste Einstellung. Wird von ewiki.php verwendet, um Links zu
566      anderen WikiSeiten zu erzeugen.
567
568      Es benötigt den Namen von yourscript.php, daß selbst wiederrum
569      ewiki.php geeignet einbindet.
570      Der Name der angefragten WikiSeite wird immer schlicht an den hier
571      definierten TextString angehängt, daher sollter dieser immer in
572      "/" oder "?" oder "?id=" oder "?name=" oder "?page=" enden, damit
573      eine gültige URL dabei herauskommt und der SeitenName von ewiki_page()
574      gefunden wird.
575
576      Wenn auf deinem Server mod_rewrite vorhanden ist und funktioniert,
577      könntest du diese Konst. auch leer lassen, so alle Anfragen zu
578      http://wiki.example.com/ an das richtige Skript übergeben werden.
579      Ansonsten ist es gut, wenn eine URL absolut zum Server-Hauptpfad
580      angegeben ist, also z.B. "/~user/wiki/index.php/", damit Browser
581      keine ungültigen URLs erzeugen, sobald eine $action vor den
582      Seitennamen gesetzt wird (z.B. "edit/DieseSeite").
583
584      Die Konstante wird von ewiki_script() eingesetzt um URLs zu den
585      angegebenen Seiten zu erstellen (wobei einige Fehler abgefangen
586      werden).
587
588  EWIKI_SCRIPT_URL
589      Sollte eine absolute URL enthalten, die ebenfalls zum ewiki-wrapper
590      zeigt, z.B. "http://www.example.com/wiki/?id="
591
592
593  EWIKI_DB_TABLE_NAME
594      Setzt den Namen der MySQL DB Tabelle fest, die erzeugt und verwendet
595      werden soll, um alle WikiSeiten abzulegen.
596
597
598  EWIKI_PAGE_INDEX
599      Definiert den Namen der WikiSeite, die als Startseite angezeigt werden
600      soll.
601  EWIKI_PAGE_NEWEST
602      Name (intern erzeugt) der Seite, die List der zuletzt hinzugefügten
603      Seiten enthält.
604  EWIKI_PAGE_SEARCH
605      Enthält den WikiSeitenNamen für dei SuchFunktion.
606
607
608  EWIKI_CONTROL_LINE
609      Wenn auf 0 gestzt, wird die Zeile unter einer WikiSeite mit
610      "DieseSeiteÄndern, SeitenInfo, ..." nicht angezeigt.
611      In diesem Fall sollte der Edit-Link in yoursite.php erzeugt werden.
612      Besser ist es normalerweise das Aussehen der Ausgabe in
613      ewiki_control_links() selbst zu ändern.
614
615  EWIKI_AUTO_EDIT
616      Bei 1 (voreinstellung) wird automatisch eine Edit-Box für
617      nicht-exisiterende Seiten angezeigt, ansonsten wird eine ZwischenSeite
618      ("Bitte ändere mich!") angezeigt (wie in PhpWiki).
619
620  EWIKI_LIST_LIMIT
621      Maximale Anzahl von Seiten, die in den generierten Listen angezeigt
622      werden sollen (Suche, ...)
623
624  EWIKI_PRINT_TITLE
625      Wenn 0 werden keine SeitenTitel (WikiSeiten und InterneSeiten)
626      angeziegt.
627
628
629  EWIKI_ALLOW_HTML
630      Normalerweise sollte im Wiki keine HTML erlaubt sein - böses JavaScript
631      und <brokenHTML/>, andere Leute nerven.
632
633      Siehe orig. README für mehr Informationen.
634      
635
636  EWIKI_RESCUE_HTML
637      Überholt, siehe plugins/markup_rescuehtml.php
638
639
640  EWIKI_DB_F_TEXT
641      Dieses Flag wird für normale WikiSeiten in der DB gesetzt.
642
643  EWIKI_DB_F_BINARY
644      Für binären Inhalt in der DB.
645     
646  EWIKI_DB_F_DISABLED
647      DB-Eintrage werden hiermit ausgeknippst.
648
649  EWIKI_DB_F_HTML
650      Erlaubt die Verwendung von HTML im WikiQuelltext, unabhängig von
651      EWIKI_ALLOW_HTML.
652
653  EWIKI_DB_F_READONLY
654      WikiSeite kann nicht verändert werden, so dieses Flag gesetzt ist.
655
656  EWIKI_DB_F_WRITEABLE
657      Umkehrung von READONLY, nur nützlich wenn zuvor alle Seiten mit
658      EWIKI_EDIT_AUTHENTICATE schriebgeschützt wurden.
659
660
661  EWIKI_ALLOW_OVERWRITE
662      Für eingeloggte nutzer kann yoursite.php diese Konst. auf 1 setzen, um
663      auch das Ändern von schreibgeschützten Seiten zu erlauben.
664
665  EWIKI_EDIT_AUTHENTICATE
666      Hiermit kann man ewiki dahingehend kaputt machen, daß alle Seiten
667      schreibgeschützt werden, und nur veränderbar sind, so yoursite.php
668      $ewiki_author setzt.
669
670
671  EWIKI_SCRIPT_BINARY
672      Um binäre Daten ausgeben zu können, muß hier ein wrapper-script
673      angegeben werden, daß ein Datenbank-Verbindung öffnet und keine
674      Textausgaben erzeugt, bevor nicht ewiki.php eingebunden wurde,
675      da sonst nur Datenmüll ausgegeben würde.
676
677      Um alle binary-Funktionalität (Bilder hochladen / cachen) loszuwerden,
678      einfach diese Konstante auf "" setzen, und die folgenden zwei auf 0:
679
680
681  EWIKI_CACHE_IMAGES
682      Bilder zwischenspeichern.
683
684  EWIKI_IMAGE_MAXSIZE
685      Maximale Größe von Bildern die in der DB abgelegt werden sollen.
686
687  EWIKI_IMAGE_RESIZE
688      Bilder herunterskalieren, wenn zu groß.
689
690  EWIKI_IDF_INTERNAL 
691      Wird verwendet um hochgeladene Bilder zu identifizieren. Bitte
692      im laufenden Betrieb nicht ändern.
693      
694
695  EWIKI_ADDPARAMDELIM
696      Automatisch definiert, enthält entweder "?" oder "&", abhängig von
697      EWIKI_SCRIPT.
698
699
700  EWIKI_T_*
701      überholt, siehe ewiki_t() und $ewiki_t[] in der englischen README
702
703
704  EWIKI_CHARS_U
705  EWIKI_CHARS_L
706      Erlaubte Zeichen in WikiSeitenNamen (große und kleine Letter). Hiermit
707      kann man das wiki lokalisieren; deutsche Umlaute sind schon enthalten.
708
709  UNIX_MILLENNIUM
710      Sehr wichtiges Ereignis ;)
711     
712
713 Im tools/ Ordner ist ein kleines Script, mit dem man die erwähnten
714 SeitenFlags ändern kann.
715
716
717
718 $ewiki_config[] array
719 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
720 Einige der EWIKI_ Konstanten wurden durch Einträge im $ewiki_config[] Array
721 ersetzt oder ergänzt (die Konstanten können weiterhin zur Voreinstellung
722 verwendet werden). Der Vorteil dieses Arrays ist, daß die Einstellungen auch
723 zur Laufzeit geändert werden können.
724
725 Für eine komplette und (einigermaßen) aktuelle Übersicht bemühe bitte die
726 englischsprachige README.
727
728
729
730
731   -------------------------------------------------------------------------
732
733
734
735
736 Nur WikiQuelltextTransformation einsetzen
737 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
738 Die ewiki_format Funktion war entworfen, um sie auch unabhängig von dem
739 restlichen WikiSkript einsetzen zu können.
740 Benötigt normalerweise nur den "wiki_source" Parmeter und erzeugt die
741 HTML-Seite daraus.
742     ewiki_format($wiki_source, 0);
743
744 Alles was man noch anpassen muß ist die $ewiki_links Variable. Setze
745 $ewiki_links=true ("true" und nicht "1") so daß ewiki_format() später
746 annimmt alle WikiSeiten würden existieren.
747
748 Wers eilig hat, kann auch die extrahierte Variante fragments/wiki_format.inc
749 verwenden, die Frank Luithle beigesteuert hat.
750
751
752
753
754   -------------------------------------------------------------------------
755
756
757
758
759 Ohne MySQL DB verwenden
760 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
761 Sollte dein Provider keine MySQL Datenbank für dich bereithalten, kannst
762 du das plugin "db_flat_files.php" verwenden (einfach include("plugins/...");
763 aufrufen um es zu laden).
764
765 Alle WikiSeiten werden dann in Textdateien in einem nur dafür
766 bereitgestelltem Ordner gespeichert. Stelle hierzu noch die Konstante
767 EWIKI_DBFILES_DIRECTORY in der Datei "ewiki.php" passend ein ("/tmp" würde
768 jedesmal gelöscht, wenn der Server neu startet).
769 Das Verzeichnus muß relativ zum ewiki.php script angegeben werden, oder
770 absolut zum Serverhauptverzeichnis, nicht aber relativ zum DocumentRoot
771 deines Webspeicherplatzes!  In diesem Beispiel wäre "./pages" richtig:
772
773 Erstelle ein neues Verzeichnis (via FTP-Programm) und gib dem Webserver
774 Schreibzugriff dafür mit dem Befehl " chmod 777 ./pages ".
775 ftp> cd .../ewiki
776 ftp> mkdir pages
777 ftp> chmod 777 pages
778 ftp> ls
779 -rw----r--    1 deinname deinname    57024 01. Jan 00:00 ewiki.php
780 -rw----r--    1 deinname deinname      512 01. Jan 00:00 index.php
781 drw----r-x    2 deinname deinname     4096 01. Jan 00:00 init-pages
782 drwxrwxrwx    2 deinname deinname     4096 25. Feb 23:59 pages
783 drw----r-x    5 deinname deinname     4096 01. Jan 00:00 plugins
784 -rw----r--    1 deinname deinname    15826 01. Jan 00:00 README.de
785 ftp> quit
786
787 Mit einem graphischem FTP-Programm gibt es auch immer die Mglk. die
788 "Dateizugriffsrechte" einzustellen.
789
790
791
792 db_fast_files
793 ¯¯¯¯¯¯¯¯¯¯¯¯¯
794 Diese neuere Version von db_flat_files, speichert die WikiSeiten
795 komprimiert in einem Binär-Format (kann man nicht mehr mit Editor
796 ansehen und bearbeiten). Zusätzlich wurde der HitZähler aktiviert.
797
798 db_fast_files wurde in db_flat_files integriert, so daß das neue
799 Format jetzt nur noch über eine Konstante aktiviert werden muß
800 (beide Dateiformate können gleichzeitig in der DB vorhanden sein).
801 Für die schnellere Variante aktiviere in "plugins/db_flat_files.php"
802 die entsprechende Konstante:
803    define("EWIKI_DB_FAST_FILES", 1);
804 (Diese Einstellung könntest du aber auch schon in der "config.php"
805 eintragen.)
806
807 Zusätzliche Konstante: EWIKI_DBFILES_GZLEVEL sagt wieviel Zeit
808 beim Komprimieren verschwendet werden soll:
809 0 - keine Komprimierung
810 1 - ein ganz klein wenig Kompr.
811 2 - Voreinstellung, schnell
812 5 - normaler Wert in zlib, gute Komprimierung
813 9 - langsam für allerbeste Kompression
814
815 Dieses plugin wurde von Carsten Senf beigesteuert.
816
817
818
819
820   --------------------------------------------------------------------------
821
822
823
824
825 BöseBäckSläshes
826 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
827 Wenn auf deinen Seiten pötzlich viele "\" RückwärtsSchrägStriche
828 auftauchen liegt das an einer Fehlkonfiguration von PHP. In älteren
829 Versionen war leider immer die Option "magic_slashes_gpc" aktiviert
830 (siehe auch php.ini).
831
832 Bitte am besten deinen WebserverProvider das zu ändern. Wenn du aber bei
833 einem der BilligHoster (umsonst wie sourceforge.net oder tripod.com) bist,
834 gilt wie immer: einem geschenkten Gaul...
835 Dann verwende bitte "fragements/strip_wonderful_slashes.php", um das
836 Problem zumindest zu umschiffen, oder ändere deine .htaccess Datei (Apache)
837 wie darin beschrieben.
838
839
840
841   --------------------------------------------------------------------------
842
843
844
845 Paßwörter und tools/
846 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
847 Die tools/ sind gefährlich und daher per Voreinstellung nicht ohne weiteres
848 Nutzbar. In der Datei "tools/t_config.php" wird das Script
849 "fragmenst/funcs/auth.php" geladen, daß für den Browser-Login-Dialog
850 verantwortlich ist. Wenn du also die tools/ verwenden willst, mußt du dort
851 zuerst einen Benutzer mit Paßwort eintragen, sonst geht nix.
852
853 Um hingegen dein Wiki zu schützen, so daß nur einige wenige Personen die
854 Seiten editieren können, ließ dir bitte die Datei "plugins/auth/README.auth"
855 durch (leider nur in Englisch). Sie beschreibt den _PROTECTED_MODE und
856 stellt die entsprechenden Plugins vor.
857
858