b84784fe846d9c323a2398fdbc65cda37d37ab0d
[atutor.git] / mods / wiki / doc / ConfigSettings
1
2 ewiki configuration constants and variables
3 ===========================================
4
5
6 README.config
7 ¯¯¯¯¯¯¯¯¯¯¯¯¯
8 In this part of the documentation the core configuration settings/constants
9 will be described. There is a long list of EWIKI_ constants and a smaller
10 fraction of setup variables in the $ewiki_config[] array, which can tweak
11 behaviour.
12
13 Some other run-time variables are described in the [README.programming],
14 which also talks about other internals.
15
16
17
18   -------------------------------------------------------------------- 3 --
19                   
20
21
22 EWIKI_ constants
23 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
24 This chapter explains some of the constants and how you can utilize
25 them to tweak some of ewiki's behaviour.
26
27 The recommended way to change settings is to copy the define() commands
28 from "ewiki.php" into "yoursite.php" (see our example "config.php"). This
29 is a good idea, because then your settings won't get lost if you upgrade
30 to a newer version by overwriting your tweaked "ewiki.php".
31
32                    [Note: constants in PHP can be defined() once only, so
33                    pre-defining them in "yoursite.php" or a "config.php"
34                    script is nearly like a 'configuration']
35
36 To define() some of those constants in 'yoursite.php' is especially a good
37 thing, because some of them are more used like state variables and it may
38 be more senseful to set them depending on informations only available in
39 the scripts of yoursite.php (for example if yourscripts provide a way to
40 authenticate and login a user you could give him additional rights within
41 ewiki by pre-defining one of the following constants).
42
43
44  EWIKI_SCRIPT
45      This is the most important setting. It is used by ewiki.php
46      to generate links to other WikiPages.
47
48      It needs the name of yourscript.php which itself includes
49      ewiki.php.
50      The name of the linked WikiPage is just appended to the string
51      defined here, so you must ensure that it either ends in "/"
52      or "?id=" or "?name=" or "?page=" so it constructs a valid
53      URL after concatenation (or %s replaced) with the WikiPageName.
54
55      If you utilize mod_rewrite on your server, you may wish to
56      make it blank when all requests to http://wiki.example.com/
57      are redirected to the correct script by your WebServer.
58
59      If your wrapper script for example is called 'index.php' then you
60      can just set EWIKI_SCRIPT to "?page=" (which then refers to the
61      index.php of the current directory).
62      You should preferrably set it absolute to the servers DocumentRoot,
63      which gets a requirement if you'd like to give page names and actions
64      via PATH_INFO "/wiki.php/WikiPage" and not as QUERY_STRING "?id=".
65
66      Update: this constant will stay, but the core script now utilizes
67      the ewiki_script() function (which itself additionally respects
68      the $ewiki_config["script"] config variable in favour).
69
70      ewiki_script() introduces use of the "%s" placeholder inside
71      EWIKI_SCRIPT, which will be replaced by pagename and action, when
72      URLs are generated.
73
74  EWIKI_SCRIPT_URL
75      Some parts of ewiki require the absolute URL of the ewiki wrapper
76      script. So in contrast to the (often) short EWIKI_SCRIPT, this
77      constant MUST contain the protocol and server name, like:
78      "http://www.example.com/wiki/index.php?id="
79      If you do not set this constant, it will be guessed by the
80      ewiki_script_url() funciton, what often works but may be suboptimal
81      and could also lead to security problems.
82       
83
84  EWIKI_DB_TABLE_NAME
85      Sets the name of the MySQL database table name to be created
86      and used to store all WikiPages.
87  EWIKI_DBQUERY_BUFFER
88      When set to a value>0 then SQL database buffering will be enabled
89      for SEARCH and GETALL queries. This is mostly like the old (R1.00)
90      behaviour (memory exhaustive), but instead is limited to the size
91      defined by this configuration constant (for example 384K).
92  EWIKI_DBFILES_DIRECTORY
93      Defines where db_flat_files puts the database (made up of files).
94      There is a separate paragraph about this,
95  EWIKI_DBFILES_ENCODE
96      If set to 1 will generate urlencoded() filenames even on UNIX
97      systems, so the dbff database 'files' get exchangeable across
98      DOS/Win and UNIX filesystems. Not recommended, and will make
99      ewiki run bogus, if you switch it after there already entries
100      in the database.
101      It may however be useful to enable this per default, if you want to
102      "backup" (this is the wrong way) from a Unix server to a Win box via
103      an ordinary FTP program (more professional tools could however handle
104      this more easily).
105  EWIKI_DBFILES_NLR
106      Used by flat files backends to encode newline characters.
107  EWIKI_DBFILES_GZLEVEL
108      Compression level for fast flat files and dba backend.
109  EWIKI_DBA
110      File name of .db3 data file, if the dba/dbx backend was used.
111  EWIKI_INIT_PAGES
112      Names the directory from which the basic pages should be read and
113      then written into the database, when ewiki is run the very first
114      time (or the FrontPage - EWIKI_PAGE_INDEX) is still empty.
115      Btw, you could use the 'ewikictl' utility to export all your Wiki
116      pages into this directory as auto-reinit-backup.
117
118
119  EWIKI_NAME
120      Defines the name of your Wiki. (This is not used currently, but
121      is required, as _PAGE_INDEX is often just set to "FrontPage".)
122  EWIKI_PAGE_INDEX
123      This defines the name of the WikiPage which shall be displayed
124      when no value is received within the URL. Often this is called
125      the "FrontPage" of the Wiki.
126      The mysql error message "Table 'ewiki' already exists" will appear
127      until you create (and fill) the page specified herein.
128      If you'd like to have a wiki without FrontPage, you can set this
129      constant to 0 or "" - you must then however ensure, that the ewiki
130      script is never activated without a page name!
131  EWIKI_PAGE_NEWEST
132      This defined the name of the virtual (internally generated) page
133      containing a list of the lately added WikiPages.
134  EWIKI_PAGE_SEARCH
135      Holds the WikiPageName for the search function.
136  EWIKI_PAGE_LIST
137      List of all pages.
138  EWIKI_PAGE_HITS
139      Pages ordered by most hits.
140  EWIKI_PAGE_VERSIONS
141      Page list sorted by number of changes/revisions.
142  EWIKI_PAGE_UPDATES
143      "UpdatedPages" 
144
145
146  EWIKI_CONTROL_LINE
147      Pre-define this with 0 before including("ewiki.php") if you
148      don't want that "<HR><A HREF>EditThisPage</A> ..." to be shown
149      at the bottom of each page.
150      You must then generate the EditThisPage link yourself somewhere
151      else on yoursite.php - It is often easier to simply edit the
152      ewiki_control_links() function to match the layout/design of yoursite.
153  EWIKI_LIST_LIMIT
154      Number of pages to show up in search queries (and other generated
155      pages).
156  EWIKI_PRINT_TITLE
157      If set to 0 will prevent the page title from being shown on many
158      pages (generated and database content ones).
159  EWIKI_SPLIT_TITLE
160      If changed to 1 will separate WikiPages titles into its different
161      word parts (only on top of each page).
162
163
164  EWIKI_DEFAULT_ACTION
165  EWIKI_AUTO_EDIT
166      If set to 1 (default) will automatically bring up the edit box
167      for non-existent pages. Else a page in between will appear ("please
168      edit me!") like in PhpWiki.
169  EWIKI_EDIT_REDIRECT
170  EWIKI_RESOLVE_DNS
171  EWIKI_HTTP_HEADERS
172      Allows ewiki to throw HTTP headers, where appropriate. You should keep
173      it enabled, as it allows for things like RedirectionAfterEdit (when
174      a page gets saved), and many other useful things.
175      headers() can often only be sent, if your wiki/yoursite.php is binary
176      safe, or uses PHPs output buffering (less reliable).
177  EWIKI_HTTP_HEADERS
178      Instructs browsers not to cache delivered pages at all. This is often
179      a good thing, because otherwise unclever caches will prevent the most
180      recent wikipage version to get seen by users.
181  EWIKI_NO_CACHE
182      Sends appropriate header to effectively prevent caching of pages
183      (since they change quickly).
184
185
186  EWIKI_CASE_INSENSITIVE
187      Was only recently implemented, but ewiki is fully configurable now in
188      regards to WikiLink case. It is enabled per default, and thus allows
189      referencing any "WikiPage" using strings like "WiKipAgE". This is
190      believed to be more user-friendly than case-dependency.
191      Reverting to "binary" page name matching is not fully complete now (our
192      database scheme was designed for case-insensitivity from the very start
193      and thus the DB code first needs tweaking before links in ewiki really
194      get case-dependent. (case-insensitivity in ewiki.php means, that
195      everything is converted into lowercase characters for comparisions)
196  EWIKI_HIT_COUNTING
197      Enable counting of page views.
198
199
200  EWIKI_URLENCODE
201  EWIKI_URLDECODE
202      You shouldn't disable both unless you know, you don't need to encode
203      WikiPageNames (else almost always necessary for sanity and security
204      reasons).
205  EWIKI_USE_PATH_INFO
206      If you have a broken Webserver (like many Apache versions), you may
207      wish to disable the use of PATH_INFO. If you ever happen to see
208      "Edit page '/wiki/example-1.php'", you probably need to disable it.
209  EWIKI_USE_ACTION_PARAM
210      Allows the page action command to be given as '&action=...' within
211      an URL (else only "action/WikiPage" allowed). You want to leave that
212      enabled.
213      If you set this constant to 2, ewiki will default to actively create
214      such URLs (instead of using the "edit/PageName" prefix). If set so you
215      should then disable EWIKI_ACTION_TAKE_ASIS, and you probably want to
216      edit EWIKI_SCRIPT to make ewiki emit _PATH_INFO style URLs as seen in
217      other WikiWare.
218  EWIKI_ACTION_SEP_CHAR
219      Defines the character that separates the page name from the action
220      name in generated URLs. Per default this is the slash, but you
221      could use something else (like the ":" colon), which however may
222      have a few drawbacks somewhere else.
223  EWIKI_ACTION_TAKE_ASIS
224      If kept enabled, ewiki will always take anything before a slash
225      in the given ?id= as action. If set to 0, it will however check
226      if such an action exists (or is enabled) at all, thus making it
227      easier to retrieve ?id=With/Slashes in it (without ewiki suddenly
228      treating the first part as $action string).
229  EWIKI_SUBPAGE_LONGTITLE
230  EWIKI_SUBPAGE_START
231  EWIKI_SUBPAGE_CHARS
232      Character classes used to decipher SubPages (an optional extension).
233
234
235  EWIKI_ESCAPE_AT
236      Encodes the "@" sign into a html entities, which in the past helped
237      a little bit against address rippers. But please check out the new
238      plugins/email_protect.php, which is more effective against email
239      harvesters.
240  EWIKI_ALLOW_HTML
241      Usually you do not want that users are able to add <HTML> tags
242      inside the WikiPages as this allows for corruption of your page
243      layout or creation of harmful JavaScript areas.
244
245      This is however one of the few constants which could be set by
246      yoursite.php for logged-in users. If it is set while a user
247      saves a changed page, then the special EWIKI_DB_F_HTML will
248      be set for the newly created version, so <HTML> won't be
249      garbaged by ewiki_format() if another (not logged-in) user
250      requests the WikiPage next time.
251
252      You must start a line with a "|" to actually make the HTML
253      work within a WikiPage.
254
255      If a not logged-in user however re-saves the page this flag
256      won't be set anymore, so you should be careful about that.
257      {{edit ewiki.php and define(_DB_F_HTML with 8+16) to change}}
258  EWIKI_RESCUE_HTML
259      Was replaced by "plugins/markup_rescuehtml.php", which now allows
260      for certain 'safe' HTML tags within the wiki source to be used.
261  EWIKI_HTML_CHARS
262      If set the rendering function will backconvert html entities which
263      represent non-latin characters, like &#4234; or &#1324;
264
265
266  EWIKI_DB_F_*
267      Page flags are associated to every page and can be used to effectively
268      tweak access restrictions and behaviour of individual text pieces.
269      There are various tools/ to tweak them in a running database.
270  EWIKI_DB_F_TEXT
271      This flag is set for every WikiPage inside the database. Usually
272      the only flag set on creation of a new page.
273      Starting from R1.00b previous flags will be copied after applying
274      EWIKI_DB_F_COPYMASK.
275  EWIKI_DB_F_BINARY
276      Used for cached/uploaded images. Prevents a page from getting
277      shown.
278  EWIKI_DB_F_DISABLED
279      If set will prevent the page from being shown. Not useful.
280      You could more easily unset the TEXT flag to disable page view.
281  EWIKI_DB_F_HTML
282      Special flag to allow the current version to include <HTML>
283      tags regardless of the global EWIKI_ALLOW_HTML setting.
284  EWIKI_DB_F_READONLY
285      Prevents a new version to be saved, and thus disallows
286      editing of the WikiPage.
287  EWIKI_DB_F_WRITEABLE
288      Is the reversal of READONLY but only useful if you crippled
289      ewiki by setting EWIKI_EDIT_AUTHENTICATE, as this flag is only
290      intended to reallow editing of a page if you disallowed it before
291      with _EDIT_AUTH (which denies access to _all_ pages).
292  EWIKI_DB_F_APPENDONLY
293      Gets implemented by the plugins/append*.php, and allows to lock
294      a page, in that users can only append to edit (or edit parts of
295      it). See the plugin description for more details.
296  EWIKI_DB_F_SYSTEM
297      Is used to mark internally used data holders (usually serialized()
298      variables).
299  EWIKI_DB_F_PART
300      Denotes a page that first must be merged with others (only one piece
301      of a larger group of pages).
302  EWIKI_DB_F_MINOR
303      Signalizes hiding that revision on RecentChanges and UpatedPages.
304  EWIKI_DB_F_HIDDEN
305      Page shouldn't show up on any of the automatically generated page
306      lists (like RecentChanges and SearchPages). Links on pages will still
307      be rendered normally, unless the deadlyhidden plugin was loaded.
308  EWIKI_DB_F_ARCHIVE
309      Excludes a page/version from automated deletion (cron scripts).
310  EWIKI_DB_F_EXEC
311      Marks a system page containing executable (PHP) code. Not a core
312      feature, only used by xpi plugins to date.
313  EWIKI_DB_F_TYPE
314      Used internally to separate TEXT, BINARY, DISABLED and SYSTEM entries.
315  EWIKI_DB_F_ACCESS
316      Is a mask to check for READONLY, WRITEABLE and APPENDONLY flags.
317  EWIKI_DB_F_COPYMASK
318      When a new page is created, the flags of the previous version
319      are ANDed with this value to strip off some unsafe settings.
320      Note, that the _HTML and a few other feature flags are now copied
321      as well, so you may want to set a page _READONLY once you enabled
322      "unsafe" options.
323  Always keep in mind, that flags could be reimported from previous versions
324  as well - it hasn't been verified, but that could happen.
325
326
327  EWIKI_PROTECTED_MODE
328      Is an operation mode of ewiki, which activates ewiki_auth() function,
329      that is utilized from many places to require a permission level (from
330      authenticated users). Set this constant to 1 to enable this mode.
331      You'll also need some plugins from plugins/auth/ to make this useful.
332
333      If this constant is set to 2, then you don't need a permission plugin,
334      but can control access to the edit/ function, by setting $ewiki_ring
335      to 2 (to allow) from within yoursite.php scripts. This setting is also
336      sometimes referred to as the "ClassicProtectedMode".
337  EWIKI_FLAT_REAL_MODE
338      Not a configuration directive, but the opposite to _PROTECTED_MODE ;)
339  EWIKI_AUTH_DEFAULT_RING
340      Is the permission level which is to be set, if no user is logged in
341      currently (defaults to 3 - which means "browsing only").
342  EWIKI_AUTO_LOGIN
343      If this is enabled, then ewiki_page() automatically requests for
344      (re-)presenting the login <form> on startup, if current authentication
345      isn't sufficient to go any further. Leave this enabled, it helps around
346      some problems.
347  EWIKI_EDIT_AUTHENTICATE
348  EWIKI_ALLOW_OVERWRITE
349      Outdated (were present in older ewiki versions). See
350      'plugins/auth/auth_perm_old.php' to get them back.
351  EWIKI_PROTECTED_MODE_HIDING
352      Hides links to pages that weren't viewable with current auth status.
353
354  EWIKI_ADMIN_PW
355      Is used occasionally by some plugins as lightweight alternative to
356      the ProtectedMode.
357
358
359
360  EWIKI_SCRIPT_BINARY
361      This requires the REAL absolute address of the ewiki.php
362      library script (but the database must already be opened).
363      Needed for the function for cached/uploaded images.
364      You can set it to almost the same value as EWIKI_SCRIPT if it
365      is ensured that there is yet no output made, and the headers()
366      are not already sent.
367
368      Usually just "?binary=" works fine (if you use the index.php
369      way of including ewiki.php).
370
371      If you don't want ewiki to use image caching and uploading
372      functions you would define this to "" or 0, because this disables
373      the <img href> redirection through ewiki_binary(). You should then
374      also disable the following two constants:
375  EWIKI_ENGANGE_BINARY
376      If you pre-define this to zero, the _binary() part of ewiki won't
377      come up automatically as soon as you include the ewiki.php script.
378  EWIKI_CACHE_IMAGES
379      Allow caching of images.
380      To disable all the image functions (uploading, caching) set this to 0,
381      as well as EWIKI_SCRIPT_BINARY and:
382  EWIKI_IMAGE_MAXSIZE
383      ewiki will scale down images until they get smaller than
384      the absolute size (bytes) given here. This is true for cached
385      and uploaded images.
386      Your database may grow really fast, if you set it too high!
387      (even if .BMP and .XWD files are discarded normally ;-)
388  EWIKI_IMAGE_MAXALLOC
389      Maximum size of image while uploading and resizing it (memory
390      limits).
391  EWIKI_IMAGE_RESIZE
392      Enables the internal resizing functions.
393  EWIKI_IMAGE_MAXWIDTH
394  EWIKI_IMAGE_MAXHEIGHT
395      Maximum height and width for uploaded images. Else resizing will
396      engage.
397  EWIKI_IMAGE_ACCEPT
398      All acceptable MIME types for uploading.
399  EWIKI_IDF_INTERNAL
400      Is used to identify uploaded images and data files. Usually you do
401      not want to change it, especially if there are already uploaded
402      files; however "chrome://" or "file://localhost/tmp/" could be
403      funny alternatives to the default "internal://".
404
405      Note that the renderer relies only on some unique string to detect
406      binary references, but the database functions in fact depend upon
407      "://" to return image sizes on "FIND" calls.
408  EWIKI_ACCEPT_BINARY
409      Allows users to upload arbitrary binary files through the image upload
410      function. You should now rather use the downloads plugin, which adds
411      a lot of functionality missing better suited for such purposes.
412      This feature depends on the image upload and cache function.
413
414
415  EWIKI_SERVER
416      Name of the web server domain. (auto)
417  EWIKI_BASE_URL
418      URL to access the current installation. (auto)
419  EWIKI_ADDPARAMDELIM
420      Automatically defined, holds either "?" or "&" depending on what
421      is in EWIKI_SCRIPT. You shouldn't change this unless you know what
422      you are doing. (auto)
423  EWIKI_CHARS_U
424  EWIKI_CHARS_L
425      Allowed chars in WikiPageNames (uppercase and lowercase chars). Use
426      this to localize your wiki (standard Wikis only allow A-Z, think of
427      that when it comes to InterWiki).
428  EWIKI_TMP
429      Tells ewiki which directory to use for temporary files. The default
430      value is "/tmp" or whatever the environment variable $TEMP or %TEMP
431      tells (often "C:\\Windoze\\Temp" or "C:\\Trashcan" on DOS systems).
432  EWIKI_LOGLEVEL
433      Log messages are internally separated into four categories:
434      0=evil errors, 1=warnings, 2=notices, 3=annoying debug stuff.
435      If you do not want a log at all, just set this constant
436      to -1 or 357. If you set it to 1 for example, you will see
437      error and warning messages in EWIKI_LOGFILE.
438
439
440  EWIKI_UP_*
441      URL parameters. Changing these may only be necessary, if one is already
442      evaluated within yoursite.php for other purposes (incompatibilities).
443      You could also change these just to make some of the generated URLs
444      look a bit nicer ;)
445  EWIKI_UP_BINARY
446  EWIKI_UP_UPLOAD
447  EWIKI_UP_PARENTID
448  EWIKI_UP_LISTLIM
449
450
451  EWIKI_T_*
452      These text string constants were replaced by the $ewiki_t[] array and
453      ewiki_t() function.
454  EWIKI_DEFAULT_LANG
455      This value is used by a few plugins, that must guess the desired
456      language of visitors, or the language of a pages content.
457  EWIKI_CHARSET
458      ewiki currently only supports the Latin-1 charset, but UTF-8
459      support is underway. So you should only specify "ISO-8859-1"
460      or "UTF-8" herein (while most other "ISO-8859-*" are believed
461      to work too).
462
463
464  UNIX_MILLENNIUM
465      Just a constant. Used for verification of timestamps (ony range 1*UM
466      till 2*UM accepted).
467  EWIKI_VERSION
468      Is not used at all. It is just placed on top of every ewiki.php to tell
469      you, which version you are running currently.
470      Major releases have a version number like 'R1.00a', while testing and
471      unstable releases have another number appended 'R1.00a7'.
472     
473
474
475
476 $ewiki_config array
477 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
478 As it turned out not all configuration settings are as everlasting that
479 they can be constants (this mainly applies to "look&feel"-settings). So
480 some of the above mentioned EWIKI_ constants can now be overridden by
481 settings in the more flexible $ewiki_config[] array.
482
483 Usually this array contains index=>value pairs with simple boolean
484 meanings, but often there are more complex entries and some of its contents
485 are data/behaviour entries (that were previously/falsely in $ewiki_plugins).
486
487   $ewiki_config["name"] = "setting...";
488
489 Would overwrite/override a default setting by that name. You can put
490 this assignment even above loading the ewiki.php script (or after doing
491 so), because the built-in defaults won't overwrite single existing
492 values.
493
494
495 general, links
496 -------------- 
497
498  ["script"]
499      Replaced EWIKI_SCRIPT, and is used to define the path/URL of the ewiki
500      wrapper script (yoursite.php, which at least included the ewiki.php
501      script and runs the ewiki_page() function).
502
503  ["script_url"]
504      Should contain an absolute URL to the ewiki wrapper script. (replaces
505      EWIKI_SCRIPT_URL)
506
507  ["script_binary"]
508      same as EWIKI_SCRIPT_BINARY
509
510
511 appearance
512 ----------
513
514  ["print_title"]
515      replaces EWIKI_PRINT_TITLE, but also allows finer grained control:
516      a 1 says that titles should be added at top of pages
517      a 2 states that titles should also link for internal and generated
518          pages
519      a 3 will make linked titles even for pages, that should normally not
520          have them
521
522  ["split_title"]
523      replaces EWIKI_SPLIT_TITLE, defines if pages` titles WikiWords should
524      be separated by spaces when displayed in pages
525
526  ["qmark_links"]
527      Defines how links to not-existing pages shall look. Usually links to
528      such pages would be bold words with a QuestionMarkLink behind it. But
529      you can fully customize it:
530
531        "0b?"  would produce the default <b>QuestionMarkLink</b><a>?</a>
532        "0u+"  became <u>UnderLined</b><a>+</a>
533        "?b0"  became <a>?</a><b>StrongText</b>
534        "*u0"  became <a>*</a><b>UnderLined</b>
535        "[i]"  would show as <a>[</a><i>ItalicTitle</i><a>]</a>
536
537      So the innermost letter will make the HTML tag, which encloses the
538      title of the linked page (you can only use one-letter tags, like <u>
539      or <b>, <i> or even <s>). While the characters besides control, if
540      (the "0" suppresses it on either side) and how the link to the
541      not-existent page will appear.
542      That way you can have the HyperQuestionMark on both or only one of
543      the sides, and you can choose an arbitrary symbol for it ("*" and
544      often "+" make good replacements for the question mark).
545
546      If you want to enclose the title of the linked (but not existing)
547      page in another html tag (not one-letter), then you can set this
548      configuration variable with an array containing 3 elements (which
549      correspond to the flags/chars in the string variant):
550
551         $ewiki_config["qmark_links"] = array(0, "tt", "?");
552
553      (You could for example use a "<img src=qmark.png>" instead of the
554      usual textual question mark here.)
555
556      If you set ["qmark_links"] to simply 0 or -1, then you will get
557      a very ordinary link, that should later be styled via CSS. Links to
558      not-existent pages are always enclosed in <span class="NotFound">.
559
560      Adv: a fourth character (like "0b?E") in the pattern would force
561      linking to the edit/ action of that page.
562
563  ["control_links_enclose"]
564      Is typically empty, but if you want to style the action links below
565      every page via real CSS, you could turn them into a list using:
566
567         $ewiki_config["control_links_enclose"] = array(
568            "<ul>", "<li>", "</li>", "</ul>"
569         );
570
571      So you can put arbitrary html/text into the 4 array elements, into
572      which the single control/action links will later be enclosed.
573
574
575 access controls
576 ---------------
577
578  ["action_links"][$ACTION1][$ACTION2]
579      Holds title for $ACTION2 when shown on a page activated with $ACTION1
580      (only "view" and "info" get other actions` titles associated
581      currently).  This is used for the _control_links() for example to
582      entitle/show action links.
583
584  ["idf"][$TYPE]
585      Associates arrays with identification (search) strings into classes
586      (we have "url" and "img", "obj" for example associated with proto://
587      prefixes or filename extension lists).
588
589  ["interwiki"][$PREFX]
590      Connects other Wikis` script URLs to WikiLinkPrefixes.
591
592
593 formatting / rendering control
594 ------------------------------
595
596  ["format_params"][]
597      Contains the default $params, the ewiki_format() function will assume,
598      if they weren't overridden by the second paramater given to it.
599
600  ["wm_..."]
601     WikiMarkup definitions. See the [README] section on tweaking for some
602     examples on how to define your own markup.
603
604
605 you probably don't want/need to change at all
606 ---------------------------------------------
607
608  ["wiki_pre_scan_regex"]
609      Is the regular expression used to separate out links from a pages`
610      content to query the database for existence of all mentioned WikiPages.
611
612  ["wiki_link_regex"]
613      Is the actual link search regular expression. It is responsible for
614      finding WikiWords and things in square brackets and ordinary http://
615      or internal:// WWW-links and even email addresses.
616
617  ["htmlentities"]
618      Used by ewiki_format() to pre-escape <html> in wikipages (later some
619      of the escaped html is often reactivated).
620
621  ["format_block"][$BTYPE]
622      Defines "block" types, which are scanned for in WikiPages (using the
623      given search strings), and then handled by specialized ["format_block"]
624      plugins (instead of the core ewiki_format() function code).
625
626
627 informational
628 -------------
629  ["ua"]
630      Contains an User-Agent/X-Server string build from the ewiki version
631      number and some major extension plugins.
632
633
634
635 PLUGIN_ constants in short overview
636 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
637 Plugins provide additional configuration settings, that sometimes (=rarely)
638 need to be tweaked:
639
640
641  EWIKI_PAGE_EMAIL
642     "ProtectedEmail" virtual page for hiding mail addresses from bots
643  EWIKI_EMAILPROT_UNLOCK
644     automatically disables the email_protection rewrites, once a user
645     is authenticated as a real person
646  EWIKI_UP_ENCEMAIL
647  EWIKI_UP_NOSPAMBOT
648  EWIKI_UP_REQUESTLV
649  EWIKI_UP_REDIRECT_COUNT
650      prevents endless loops for redirection across Wikis
651  EWIKI_FAKE_EMAIL_LOOP
652      how many faked email addresses to generate
653  STR_ROT17
654      used for simple reversable string ciphering (= making text unreadable)
655
656  EWIKI_JUMP_HTTP
657      allow [jump:...] markup to redirect even to an http:// URL
658
659  EWIKI_NOTIFY_WITH_DIFF
660      (integer) include a diff of the change in notify: mails, but only if
661      the diff is larger than the given size of bytes (e.g. set this to 300)
662  EWIKI_NOTIFY_SENDER
663      sender email address to use for page content change notify: messages
664
665  EWIKI_BIN_DIFF
666      (eventually full) path name to GNU diff utility
667  EWIKI_BIN_PATCH
668      path name of GNU patch utility
669
670  EWIKI_SPAGES_DIR
671      standard directory name for StaticPages, usually set to "spages/"
672  EWIKI_SPAGES_BIN
673      allow/try serving of image files from the spages/ directory, by
674      circumventing any ewiki_page() output
675
676  EWIKI_DB_F_MODERATORFLAGS
677
678  EWIKI_NAME_SEP
679  CALENDAR_NAME_SEP
680      seperator character for identifying subpages of certain types
681
682  CALENDAR_PAGE_TITLE_REGEX
683  CALENDAR_PAGE_DATE_PARSE_REGEX
684
685  EWIKI_AUTH_QUERY_SAFE
686       constant which states if the current auth [request] backend is
687       binary clean - that is, it can be activated even in POST requests
688  EWIKI_USERDB_SYSTEMGROUPS
689       page name for authentication purposes, stores group names
690  EWIKI_PERM_UNIX_UMASK
691  EWIKI_PERM_UNIX_SHAREHOLDERS
692  EWIKI_PERM_USERSET_FREE
693  EWIKI_USERDB_GROUPDELIMS
694  EWIKI_PHPLIB_ALLUSERS_PERM
695  EWIKI_AUTH_ANONYMOUS_RING
696  EWIKI_AUTH_ANONYMOUS_VERIFY
697  EWIKI_USERDB_SYSTEMPASSWD
698  EWIKI_PAGE_USERREGISTRY
699  EWIKI_USERDB_USERREGISTRY
700  EWIKI_REGISTERED_LEVEL
701  EWIKI_LDAP_SERVER
702  EWIKI_LDAP_RDN
703  EWIKI_LDAP_FILTER
704  EWIKI_LDAP_RING
705  YOUR_PASSWORD
706  YOUR_LEVEL
707  EWIKI_LOGGEDIN_RING
708  EWIKI_MIN_DICT_WORD_LENGTH
709  EWIKI_PASS_DICT_PATH
710  EWIKI_PASSWORD_COMPLEXITY
711  EWIKI_LIVEUSER_LOGIN_SHUTDOWN_DELAY
712  EWIKI_PASSWD_LIFETIME
713  EWIKI_NOT_LOGGEDIN_RING
714  ALERT_RECIPIENTS
715  ALERT_SUBJECT
716  LEVENSTIEN_MIN
717  LW_PREFIX
718  LW_PASSWORD_LEN_MIN
719  LW_PASSWORD_LEN_MAX
720  LU_GUI_USER_SUBGROUPS
721  EWIKI_LOGGEDIN_RING
722  EWIKI_NOT_LOGGEDIN_RING
723
724  EWIKI_LINKTREE_UL
725  DEFAULT_LOGO
726  EWIKI_POSTID_PARSE_REGEX
727  EWIKI_DBFF_ACCURATE
728  DZF2_HIT_COUNTING
729  EWIKI_DB_UTF8
730  EWIKI_DB_STORE_DIRECTORY
731  EWIKI_DB_STORE_MINSIZE
732  EWIKI_DB_STORE_MAXSIZE
733  EWIKI_DB_STORE_URL
734  EWIKI_DB_ZIP
735  EWIKI_DB_FAST_FILES
736  EWIKI_DB_FAST_FILES
737  EWIKI_DBFF_ACCURATE
738  PHPWIKI13_WRITEACCESS
739  EWIKI_APPENDONLY_COMMENTSPART
740  EWIKI_APPENDWRITE_AUTOLOCK
741  EWIKI_DB_F_APPENDWRITE
742  EWIKI_IMGRESIZE_WIN
743  EWIKI_IMGRESIZE_WIN
744  EWIKI_IMAGE_MAX_PIXELS
745  EWIKI_IMAGE_TOLERANCE
746  EWIKI_WORK_AREA
747  EWIKI_IMAGE_MAX_X
748  EWIKI_IMAGE_MIN_X
749  EWIKI_IMAGE_MAX_Y
750  EWIKI_IMAGE_RATIO
751
752  XPI_DB
753  XPI_EVERYBODY_JPI
754  EWIKI_ACTION_USE_PARAM
755  EWIKI_REFERER_NOISE
756  EWIKI_XHTML
757  EWIKI_UP_SCREAMOMATIC
758  EWIKI_BINARY_DATA_SAFE_AUTH
759  EWIKI_CACHE_FULL
760  EWIKI_CACHE_ALL
761  EWIKI_CACHE_VTIME
762  EWIKI_CACHE_DIR
763  EWIKI_CACHE_DB
764  EWIKI_NAVBAR_SELECTALL_DEPTH
765  EWIKI_NAVBAR_ACTIVATEPARENTS
766  EWIKI_NAVBAR_ACTIVATECHILDREN
767  EWIKI_NAVBAR_ACTION
768  EWIKI_DESC
769  EWIKI_COPY
770  EWIKI_CATEGORY
771  EWIKI_LOGO_URL
772  EWIKI_USERVARS_PAGENAME_PREFIX
773  EWIKI_USERVARS_PAGENAME_PREFIX
774  EWIKI_AUTOLINKING_CACHE
775  EWIKI_LINK_ICONS_DIR
776  EWIKI_LINK_ICONS_LOOKUP_DIR
777  EWIKI_LINK_ICONS_LOOKUP_SIZE
778  EWIKI_LINK_ICONS_DEFAULT_SIZE
779  EWIKI_AUTO_CHOOSE
780  EWIKI_UP_FORCE_LANG
781  ZERO_PAGERANK
782  EWIKI_PAGE_BANNED
783  EWIKI_CSS_BLOCK
784  EWIKI_CSS_INLINE
785  EWIKI_CSS_CLASSPREP
786  EWIKI_CSS_LOWER
787  EWIKI_CSS_FIX
788  SMILIES_DIR
789  SMILIES_BASE_HREF
790  MIMETEX_BIN
791  MIMETEX_DIR
792  MIMETEX_PATH
793  MIMETEX_INLINE
794  EWIKI_ACTION_CALENDAR
795  EWIKI_PAGE_CALENDAR
796  EWIKI_PAGE_YEAR_CALENDAR
797  EWIKI_CALENDAR_WIDTH
798  EWIKI_NAME_SEP
799  CALENDAR_NAME_SEP
800  CALENDAR_PAGE_TITLE_REGEX
801  EWIKI_UPLOAD_MAXSIZE
802  EWIKI_PAGE_UPLOAD
803  EWIKI_PAGE_DOWNLOAD
804  EWIKI_ACTION_ATTACHMENTS
805  EWIKI_MPI_DEMANDLOAD
806  EWIKI_MPI_AUTOLOAD_DIR
807  EWIKI_MPI_FILE_PREFIX
808  EWIKI_MPI_FILE_POSTFIX
809  EWIKI_MPI_MARKUP_REGEX
810  EWIKI_MPI_INSERT_TBL
811  EWIKI_UP_SURVEY
812  EWIKI_MPI_SYNDICATE_INVALIDATE
813  EWIKI_GALLERY_WIDTH
814  EWIKI_PAGE_IMAGEGALLERY
815  EWIKI_PAGE_ORPHANEDPAGES
816  EWIKI_PAGE_POWERSEARCH
817  EWIKI_PAGE_RANDOMPAGE
818  EWIKI_PAGE_SINCEUPDATES
819  EWIKI_UNTAR
820  EWIKI_UNZIP
821  EWIKI_DEV_STDOUT
822  EWIKI_PAGE_WORDINDEX
823  EWIKI_PAGE_RECENTCHANGES
824  EWIKI_PAGE_EXALL
825  EWIKI_PAGE_SITEMAP
826  EWIKI_SITEMAP_DEPTH
827  EWIKI_WIKIDUMP_ARCNAME
828  EWIKI_WIKIDUMP_DEFAULTTYPE
829  EWIKI_WIKIDUMP_MAXLEVEL
830  EWIKI_DUMP_FILENAME_REGEX
831  NUM_LINKS
832  ZERO_LEVEL
833  NESTED_LEVEL
834  EWIKI_UP_AUTHOR_NAME
835  EWIKI_UP_CHANGELOG
836  EWIKI_PAGE_LOGOCNTRL_GALLERY
837  ZERO_PAGERANK
838  EWIKI_PAGE_BANNED
839  EWIKI_PAGE_BLOCKED
840  EWIKI_BULTINCAT_METAID
841  EWIKI_UP_SET_CATEGORY
842  EWIKI_UP_METABOX
843  EWIKI_UP_PAGENUM
844  EWIKI_UP_PAGEEND
845  EWIKI_UP_PAGE_LENGTH
846  EWIKI_USERNAME_LENGTH
847  EWIKI_GROUPNAME_LENGTH
848  EWIKI_PASSWORD_LENGTH
849  EWIKI_FIELDNAME_LENGTH
850
851