4b05db5a99d3e2b60d8315d06b71d33de2ad7d42
[atutor.git] / mods / wiki / doc / SetupTool
1 The small console/terminal tool 'setup' allows to configure used
2 plugins and settings like the web-based SetupWizard (t_setupwiz)
3 does. Most Linux users will find it more user-friendly, while it
4 is rather complicated to get running under Windows (you need a
5 dialog.exe or whiptail.exe with Cygwin probably).
6
7 Basically you can enable and disable plugins and change their
8 configuration settings and constants, and then let this tool
9 generate a .ini file from it or write out a "config.php" script.
10 It is also possible to generate a MonsterWiki script (where all
11 plugins and settings are in one .php include) using this tool.
12
13 Navigation through the menu is constrained by your "dialog" tool
14 version. There are different available, and some versions are
15 more deviated from the standard. The console "dialog" works best
16 (displays help) and so you may want to get run it in a terminal
17 and disable the Xdialog version by using following command:
18
19    NO_X=1  php ./tools/setup
20
21 It does not work together with "kdialog" and the new "zenity"
22 plague. Both were designed incompatible to the existing dialog
23 interface standard, and it's simply not possible to take them
24 into account. The "lxdialog" tool is used as last resort, but of
25 course won't feel all too user-friendly.
26
27
28 Navigation
29 ----------
30
31 You often come back to the main menu using the [Cancel] button
32 or ESC (press twice or wait on the console/terminal).
33
34 The tool can be exited using the DONE entry in the main menu or
35 by pressing Ctrl-C from the invoking terminal. The latter is
36 useful, if you don't want the changes you made to be stored into
37 the backup data file (./tools/setup.dat).
38
39
40 .ini or .php
41 ------------
42
43 It is recommended to always save an .ini file first, because
44 that is slightly more reliable. The setup tool automatically
45 keeps a backup of the last session and all made changes, but
46 this is sometimes not what you want, because any made test
47 changes will live on.
48
49 Use the .ini file with the fragments/ini.php plugin loader, which
50 takes care to load all plugins (and the core) after setting all
51 configuration constants an variables.
52
53 A config.php script is of course senseful to generate, after
54 you feel finished. You may want to make a backup of your old
55 config.php script, before you let the setup tool OVERWRITE your
56 existing file.
57
58
59 Bugs
60 ----
61
62 In the plugin selection lists, pressing the [Help] button will
63 make all made crosses vanish again. That's a problem with the
64 way how dialog communicates with the calling script (any made
65 changes cannot be detected).
66
67 Some categories in the plugin overview cannot be selected,
68 because they do not contain available plugins (all that are
69 contained are then typically hidden - deprecated or excluded).
70 This visual glitch is not worked around, because it's a too
71 minor issue.
72
73
74 Notes
75 -----
76
77 More informations about the sorting of ewiki plugins can be
78 found in doc/PluginMetaFiles.
79
80 The recent settings are kept in a file called "tools/setup.dat"
81 nearby the script.
82
83
84 Running non-locally
85 -------------------
86
87 If you have a working X11 environment on your web server, and
88 the Xdialog utility installed, then you could run this tool
89 over the network. You must make "setup.dat" and "ewiki.ini"
90 world-writable or use a setuid wrapper around the calling
91 script.
92 Simply create following CGI script "Xsetup.php" in the ewiki
93 root or tools directory:
94
95   <body bgcolor="#000000" text="#ffffff">
96   <?php
97   /*
98      start setup script over X11,
99      - needs Xdialog on the web server
100      - you must enable connections with "xhost +1.2.3.4"  (server IP)
101   */
102
103   echo "Enable X11 connections, using 'xhost +$_SERVER[SERVER_ADDR]'.\n<hr>\n<br>\n";
104   flush();
105   ob_implicit_flush(1);
106
107   putenv("DISPLAY=$_SERVER[REMOTE_ADDR]:0");
108   putenv("DIALOG=Xdialog");
109   system("./tools/setup");
110
111   ?>
112   </body>
113
114 Call this after allowing (xhost + ) remote, unauthenticated
115 connections.
116