source: subversion/trunk/roundcubemail/installer/config.php @ 4822

Last change on this file since 4822 was 4822, checked in by alec, 2 years ago
  • Fix typos
File size: 20.5 KB
Line 
1<form action="index.php" method="post">
2<input type="hidden" name="_step" value="2" />
3<?php
4
5// also load the default config to fill in the fields
6$RCI->load_defaults();
7
8// register these boolean fields
9$RCI->bool_config_props = array(
10  'ip_check' => 1,
11  'enable_caching' => 1,
12  'enable_spellcheck' => 1,
13  'auto_create_user' => 1,
14  'smtp_log' => 1,
15  'prefer_html' => 1,
16  'preview_pane' => 1,
17  'debug_level' => 1,
18);
19
20// allow the current user to get to the next step
21$_SESSION['allowinstaller'] = true;
22
23if (!empty($_POST['submit'])) {
24 
25  echo '<p class="notice">Copy or download the following configurations and save them in two files';
26  echo ' (names above the text box) within the <tt>'.RCMAIL_CONFIG_DIR.'</tt> directory of your Roundcube installation.<br/>';
27  echo ' Make sure that there are no characters outside the <tt>&lt;?php ?&gt;</tt> brackets when saving the files.</p>';
28 
29  $textbox = new html_textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile"));
30 
31  echo '<div><em>main.inc.php (<a href="index.php?_getfile=main">download</a>)</em></div>';
32  echo $textbox->show(($_SESSION['main.inc.php'] = $RCI->create_config('main')));
33 
34  echo '<div style="margin-top:1em"><em>db.inc.php (<a href="index.php?_getfile=db">download</a>)</em></div>';
35  echo $textbox->show($_SESSION['db.inc.php'] = $RCI->create_config('db'));
36
37  echo '<p class="hint">Of course there are more options to configure.
38    Have a look at the config files or visit <a href="http://trac.roundcube.net/wiki/Howto_Config">Howto_Config</a> to find out.</p>';
39
40  echo '<p><input type="button" onclick="location.href=\'./index.php?_step=3\'" value="CONTINUE" /></p>';
41 
42  // echo '<style type="text/css"> .configblock { display:none } </style>';
43  echo "\n<hr style='margin-bottom:1.6em' />\n";
44}
45
46?>
47<fieldset>
48<legend>General configuration</legend>
49<dl class="configblock">
50
51<dt class="propname">product_name</dt>
52<dd>
53<?php
54
55$input_prodname = new html_inputfield(array('name' => '_product_name', 'size' => 30, 'id' => "cfgprodname"));
56echo $input_prodname->show($RCI->getprop('product_name'));
57
58?>
59<div>The name of your service (used to compose page titles)</div>
60</dd>
61
62<dt class="propname">temp_dir</dt>
63<dd>
64<?php
65
66$input_tempdir = new html_inputfield(array('name' => '_temp_dir', 'size' => 30, 'id' => "cfgtempdir"));
67echo $input_tempdir->show($RCI->getprop('temp_dir'));
68
69?>
70<div>Use this folder to store temp files (must be writeable for webserver)</div>
71</dd>
72
73
74<dt class="propname">ip_check</dt>
75<dd>
76<?php
77
78$check_ipcheck = new html_checkbox(array('name' => '_ip_check', 'id' => "cfgipcheck"));
79echo $check_ipcheck->show(intval($RCI->getprop('ip_check')), array('value' => 1));
80
81?>
82<label for="cfgipcheck">Check client IP in session authorization</label><br />
83
84<p class="hint">This increases security but can cause sudden logouts when someone uses a proxy with changing IPs.</p>
85</dd>
86
87<dt class="propname">des_key</dt>
88<dd>
89<?php
90
91$input_deskey = new html_inputfield(array('name' => '_des_key', 'size' => 30, 'id' => "cfgdeskey"));
92echo $input_deskey->show($RCI->getprop('des_key'));
93
94?>
95<div>This key is used to encrypt the users imap password before storing in the session record</div>
96<p class="hint">It's a random generated string to ensure that every installation has its own key.
97If you enter it manually please provide a string of exactly 24 chars.</p>
98</dd>
99
100<dt class="propname">enable_caching</dt>
101<dd>
102<?php
103
104$check_caching = new html_checkbox(array('name' => '_enable_caching', 'id' => "cfgcache"));
105echo $check_caching->show(intval($RCI->getprop('enable_caching')), array('value' => 1));
106
107?>
108<label for="cfgcache">Cache messages in local database</label><br />
109</dd>
110
111<dt class="propname">enable_spellcheck</dt>
112<dd>
113<?php
114$check_spell = new html_checkbox(array('name' => '_enable_spellcheck', 'id' => "cfgspellcheck"));
115echo $check_spell->show(intval($RCI->getprop('enable_spellcheck')), array('value' => 1));
116?>
117<label for="cfgspellcheck">Make use of the spell checker</label><br />
118</dd>
119
120<dt class="propname">spellcheck_engine</dt>
121<dd>
122<?php
123$select_spell = new html_select(array('name' => '_spellcheck_engine', 'id' => "cfgspellcheckengine"));
124if (extension_loaded('pspell'))
125  $select_spell->add('pspell', 'pspell');
126$select_spell->add('Googie', 'googie');
127
128echo $select_spell->show($RCI->is_post ? $_POST['_spellcheck_engine'] : 'pspell');
129
130?>
131<label for="cfgspellcheckengine">Which spell checker to use</label><br />
132
133<p class="hint">GoogieSpell implies that the message content will be sent to Google in order to check the spelling.</p>
134</dd>
135
136<dt class="propname">identities_level</dt>
137<dd>
138<?php
139
140$input_ilevel = new html_select(array('name' => '_identities_level', 'id' => "cfgidentitieslevel"));
141$input_ilevel->add('many identities with possibility to edit all params', 0);
142$input_ilevel->add('many identities with possibility to edit all params but not email address', 1);
143$input_ilevel->add('one identity with possibility to edit all params', 2);
144$input_ilevel->add('one identity with possibility to edit all params but not email address', 3);
145echo $input_ilevel->show($RCI->getprop('identities_level'), 0);
146
147?>
148<div>Level of identities access</div>
149<p class="hint">Defines what users can do with their identities.</p>
150</dd>
151
152</dl>
153</fieldset>
154
155<fieldset>
156<legend>Logging & Debugging</legend>
157<dl class="loggingblock">
158
159<dt class="propname">debug_level</dt>
160<dd>
161<?php
162
163$value = $RCI->getprop('debug_level');
164$check_debug = new html_checkbox(array('name' => '_debug_level[]'));
165echo $check_debug->show(($value & 1) ? 1 : 0 , array('value' => 1, 'id' => 'cfgdebug1'));
166echo '<label for="cfgdebug1">Log errors</label><br />';
167
168echo $check_debug->show(($value & 4) ? 4 : 0, array('value' => 4, 'id' => 'cfgdebug4'));
169echo '<label for="cfgdebug4">Print errors (to the browser)</label><br />';
170
171echo $check_debug->show(($value & 8) ? 8 : 0, array('value' => 8, 'id' => 'cfgdebug8'));
172echo '<label for="cfgdebug8">Verbose display (enables debug console)</label><br />';
173
174?>
175</dd>
176
177<dt class="propname">log_driver</dt>
178<dd>
179<?php
180
181$select_log_driver = new html_select(array('name' => '_log_driver', 'id' => "cfglogdriver"));
182$select_log_driver->add(array('file', 'syslog'), array('file', 'syslog'));
183echo $select_log_driver->show($RCI->getprop('log_driver', 'file'));
184
185?>
186<div>How to do logging? 'file' - write to files in the log directory, 'syslog' - use the syslog facility.</div>
187</dd>
188
189<dt class="propname">log_dir</dt>
190<dd>
191<?php
192
193$input_logdir = new html_inputfield(array('name' => '_log_dir', 'size' => 30, 'id' => "cfglogdir"));
194echo $input_logdir->show($RCI->getprop('log_dir'));
195
196?>
197<div>Use this folder to store log files (must be writeable for webserver). Note that this only applies if you are using the 'file' log_driver.</div>
198</dd>
199
200<dt class="propname">syslog_id</dt>
201<dd>
202<?php
203
204$input_syslogid = new html_inputfield(array('name' => '_syslog_id', 'size' => 30, 'id' => "cfgsyslogid"));
205echo $input_syslogid->show($RCI->getprop('syslog_id', 'roundcube'));
206
207?>
208<div>What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.</div>
209</dd>
210
211<dt class="propname">syslog_facility</dt>
212<dd>
213<?php
214
215$input_syslogfacility = new html_select(array('name' => '_syslog_facility', 'id' => "cfgsyslogfacility"));
216$input_syslogfacility->add('user-level messages', LOG_USER);
217$input_syslogfacility->add('mail subsystem', LOG_MAIL);
218$input_syslogfacility->add('local level 0', LOG_LOCAL0);
219$input_syslogfacility->add('local level 1', LOG_LOCAL1);
220$input_syslogfacility->add('local level 2', LOG_LOCAL2);
221$input_syslogfacility->add('local level 3', LOG_LOCAL3);
222$input_syslogfacility->add('local level 4', LOG_LOCAL4);
223$input_syslogfacility->add('local level 5', LOG_LOCAL5);
224$input_syslogfacility->add('local level 6', LOG_LOCAL6);
225$input_syslogfacility->add('local level 7', LOG_LOCAL7);
226echo $input_syslogfacility->show($RCI->getprop('syslog_facility'), LOG_USER);
227
228?>
229<div>What ID to use when logging with syslog.  Note that this only applies if you are using the 'syslog' log_driver.</div>
230</dd>
231
232
233
234
235</dl>
236</fieldset>
237
238
239<fieldset>
240<legend>Database setup</legend>
241<dl class="configblock" id="cgfblockdb">
242<dt class="propname">db_dsnw</dt>
243<dd>
244<p>Database settings for read/write operations:</p>
245<?php
246
247require_once 'MDB2.php';
248
249$supported_dbs = array('MySQL' => 'mysql', 'MySQLi' => 'mysqli',
250    'PgSQL' => 'pgsql', 'SQLite' => 'sqlite');
251
252$select_dbtype = new html_select(array('name' => '_dbtype', 'id' => "cfgdbtype"));
253foreach ($supported_dbs AS $database => $ext) {
254    if (extension_loaded($ext)) {
255        $select_dbtype->add($database, $ext);
256    }
257}
258
259$input_dbhost = new html_inputfield(array('name' => '_dbhost', 'size' => 20, 'id' => "cfgdbhost"));
260$input_dbname = new html_inputfield(array('name' => '_dbname', 'size' => 20, 'id' => "cfgdbname"));
261$input_dbuser = new html_inputfield(array('name' => '_dbuser', 'size' => 20, 'id' => "cfgdbuser"));
262$input_dbpass = new html_passwordfield(array('name' => '_dbpass', 'size' => 20, 'id' => "cfgdbpass"));
263
264$dsnw = MDB2::parseDSN($RCI->getprop('db_dsnw'));
265
266echo $select_dbtype->show($RCI->is_post ? $_POST['_dbtype'] : $dsnw['phptype']);
267echo '<label for="cfgdbtype">Database type</label><br />';
268echo $input_dbhost->show($RCI->is_post ? $_POST['_dbhost'] : $dsnw['hostspec']);
269echo '<label for="cfgdbhost">Database server (omit for sqlite)</label><br />';
270echo $input_dbname->show($RCI->is_post ? $_POST['_dbname'] : $dsnw['database']);
271echo '<label for="cfgdbname">Database name (use absolute path and filename for sqlite)</label><br />';
272echo $input_dbuser->show($RCI->is_post ? $_POST['_dbuser'] : $dsnw['username']);
273echo '<label for="cfgdbuser">Database user name (needs write permissions)(omit for sqlite)</label><br />';
274echo $input_dbpass->show($RCI->is_post ? $_POST['_dbpass'] : $dsnw['password']);
275echo '<label for="cfgdbpass">Database password (omit for sqlite)</label><br />';
276
277?>
278</dd>
279</dl>
280</fieldset>
281
282
283<fieldset>
284<legend>IMAP Settings</legend>
285<dl class="configblock" id="cgfblockimap">
286<dt class="propname">default_host</dt>
287<dd>
288<div>The IMAP host(s) chosen to perform the log-in</div>
289<div id="defaulthostlist">
290<?php
291
292$text_imaphost = new html_inputfield(array('name' => '_default_host[]', 'size' => 30));
293$default_hosts = $RCI->get_hostlist();
294
295if (empty($default_hosts))
296  $default_hosts = array('');
297
298$i = 0;
299foreach ($default_hosts as $host) {
300  echo '<div id="defaulthostentry'.$i.'">' . $text_imaphost->show($host);
301  if ($i++ > 0)
302    echo '<a href="#" onclick="removehostfield(this.parentNode);return false" class="removelink" title="Remove this entry">remove</a>';
303  echo '</div>';
304}
305
306?>
307</div>
308<div><a href="javascript:addhostfield()" class="addlink" title="Add another field">add</a></div>
309
310<p class="hint">Leave blank to show a textbox at login. To use SSL/IMAPS connection, type ssl://hostname</p>
311</dd>
312
313<dt class="propname">default_port</dt>
314<dd>
315<?php
316
317$text_imapport = new html_inputfield(array('name' => '_default_port', 'size' => 6, 'id' => "cfgimapport"));
318echo $text_imapport->show($RCI->getprop('default_port'));
319
320?>
321<div>TCP port used for IMAP connections</div>
322</dd>
323
324<dt class="propname">username_domain</dt>
325<dd>
326<?php
327
328$text_userdomain = new html_inputfield(array('name' => '_username_domain', 'size' => 30, 'id' => "cfguserdomain"));
329echo $text_userdomain->show($RCI->getprop('username_domain'));
330
331?>
332<div>Automatically add this domain to user names for login</div>
333
334<p class="hint">Only for IMAP servers that require full e-mail addresses for login</p>
335</dd>
336
337<dt class="propname">auto_create_user</dt>
338<dd>
339<?php
340
341$check_autocreate = new html_checkbox(array('name' => '_auto_create_user', 'id' => "cfgautocreate"));
342echo $check_autocreate->show(intval($RCI->getprop('auto_create_user')), array('value' => 1));
343
344?>
345<label for="cfgautocreate">Automatically create a new Roundcube user when log-in the first time</label><br />
346
347<p class="hint">A user is authenticated by the IMAP server but it requires a local record to store settings
348and contacts. With this option enabled a new user record will automatically be created once the IMAP login succeeds.</p>
349
350<p class="hint">If this option is disabled, the login only succeeds if there's a matching user-record in the local Roundcube database
351what means that you have to create those records manually or disable this option after the first login.</p>
352</dd>
353
354<dt class="propname">sent_mbox</dt>
355<dd>
356<?php
357
358$text_sentmbox = new html_inputfield(array('name' => '_sent_mbox', 'size' => 20, 'id' => "cfgsentmbox"));
359echo $text_sentmbox->show($RCI->getprop('sent_mbox'));
360
361?>
362<div>Store sent messages in this folder</div>
363
364<p class="hint">Leave blank if sent messages should not be stored. Note: folder must include namespace prefix if any.</p>
365</dd>
366
367<dt class="propname">trash_mbox</dt>
368<dd>
369<?php
370
371$text_trashmbox = new html_inputfield(array('name' => '_trash_mbox', 'size' => 20, 'id' => "cfgtrashmbox"));
372echo $text_trashmbox->show($RCI->getprop('trash_mbox'));
373
374?>
375<div>Move messages to this folder when deleting them</div>
376
377<p class="hint">Leave blank if they should be deleted directly. Note: folder must include namespace prefix if any.</p>
378</dd>
379
380<dt class="propname">drafts_mbox</dt>
381<dd>
382<?php
383
384$text_draftsmbox = new html_inputfield(array('name' => '_drafts_mbox', 'size' => 20, 'id' => "cfgdraftsmbox"));
385echo $text_draftsmbox->show($RCI->getprop('drafts_mbox'));
386
387?>
388<div>Store draft messages in this folder</div>
389
390<p class="hint">Leave blank if they should not be stored. Note: folder must include namespace prefix if any.</p>
391</dd>
392
393<dt class="propname">junk_mbox</dt>
394<dd>
395<?php
396
397$text_junkmbox = new html_inputfield(array('name' => '_junk_mbox', 'size' => 20, 'id' => "cfgjunkmbox"));
398echo $text_junkmbox->show($RCI->getprop('junk_mbox'));
399
400?>
401<div>Store spam messages in this folder</div>
402
403<p class="hint">Note: folder must include namespace prefix if any.</p>
404</dd>
405
406</dd>
407</dl>
408</fieldset>
409
410
411<fieldset>
412<legend>SMTP Settings</legend>
413<dl class="configblock" id="cgfblocksmtp">
414<dt class="propname">smtp_server</dt>
415<dd>
416<?php
417
418$text_smtphost = new html_inputfield(array('name' => '_smtp_server', 'size' => 30, 'id' => "cfgsmtphost"));
419echo $text_smtphost->show($RCI->getprop('smtp_server'));
420
421?>
422<div>Use this host for sending mails</div>
423
424<p class="hint">To use SSL connection, set ssl://smtp.host.com. If left blank, the PHP mail() function is used</p>
425</dd>
426
427<dt class="propname">smtp_port</dt>
428<dd>
429<?php
430
431$text_smtpport = new html_inputfield(array('name' => '_smtp_port', 'size' => 6, 'id' => "cfgsmtpport"));
432echo $text_smtpport->show($RCI->getprop('smtp_port'));
433
434?>
435<div>SMTP port (default is 25; 465 for SSL; 587 for submission)</div>
436</dd>
437
438<dt class="propname">smtp_user/smtp_pass</dt>
439<dd>
440<?php
441
442$text_smtpuser = new html_inputfield(array('name' => '_smtp_user', 'size' => 20, 'id' => "cfgsmtpuser"));
443$text_smtppass = new html_passwordfield(array('name' => '_smtp_pass', 'size' => 20, 'id' => "cfgsmtppass"));
444echo $text_smtpuser->show($RCI->getprop('smtp_user'));
445echo $text_smtppass->show($RCI->getprop('smtp_pass'));
446
447?>
448<div>SMTP username and password (if required)</div>
449<p>
450<?php
451
452$check_smtpuser = new html_checkbox(array('name' => '_smtp_user_u', 'id' => "cfgsmtpuseru"));
453echo $check_smtpuser->show($RCI->getprop('smtp_user') == '%u' || $_POST['_smtp_user_u'] ? 1 : 0, array('value' => 1));
454
455?>
456<label for="cfgsmtpuseru">Use the current IMAP username and password for SMTP authentication</label>
457</p>
458</dd>
459<!--
460<dt class="propname">smtp_auth_type</dt>
461<dd>
462<?php
463/*
464$select_smtpauth = new html_select(array('name' => '_smtp_auth_type', 'id' => "cfgsmtpauth"));
465$select_smtpauth->add(array('(auto)', 'PLAIN', 'DIGEST-MD5', 'CRAM-MD5', 'LOGIN'), array('0', 'PLAIN', 'DIGEST-MD5', 'CRAM-MD5', 'LOGIN'));
466echo $select_smtpauth->show(intval($RCI->getprop('smtp_auth_type')));
467*/
468?>
469<div>Method to authenticate at the SMTP server. Choose (auto) if you don't know what this is</div>
470</dd>
471-->
472<dt class="propname">smtp_log</dt>
473<dd>
474<?php
475
476$check_smtplog = new html_checkbox(array('name' => '_smtp_log', 'id' => "cfgsmtplog"));
477echo $check_smtplog->show(intval($RCI->getprop('smtp_log')), array('value' => 1));
478
479?>
480<label for="cfgsmtplog">Log sent messages in <tt>{log_dir}/sendmail</tt> or to syslog.</label><br />
481</dd>
482
483</dl>
484</fieldset>
485
486
487<fieldset>
488<legend>Display settings &amp; user prefs</legend>
489<dl class="configblock" id="cgfblockdisplay">
490
491<dt class="propname">language <span class="userconf">*</span></dt>
492<dd>
493<?php
494
495$input_locale = new html_inputfield(array('name' => '_language', 'size' => 6, 'id' => "cfglocale"));
496echo $input_locale->show($RCI->getprop('language'));
497
498?>
499<div>The default locale setting. This also defines the language of the login screen.<br/>Leave it empty to auto-detect the user agent language.</div>
500<p class="hint">Enter a <a href="http://www.faqs.org/rfcs/rfc1766">RFC1766</a> formatted language name. Examples: en_US, de_DE, de_CH, fr_FR, pt_BR</p>
501</dd>
502
503<dt class="propname">skin <span class="userconf">*</span></dt>
504<dd>
505<?php
506
507$input_skin = new html_select(array('name' => '_skin', 'id' => "cfgskin"));
508$input_skin->add($RCI->list_skins());
509echo $input_skin->show($RCI->getprop('skin'));
510
511?>
512<div>Name of interface skin (folder in /skins)</div>
513</dd>
514
515<dt class="propname">skin_logo</dt>
516<dd>
517<?php
518
519$input_skin = new html_inputfield(array('name' => '_skin_logo', 'size' => 50, 'id' => "cfgskinlogo"));
520echo $input_skin->show($RCI->getprop('skin_logo'));
521
522?>
523<div>Custom image to display instead of the Roundcube logo.</div>
524<p class="hint">Enter a URL relative to the document root of this Roundcube installation.</p>
525</dd>
526
527<dt class="propname">pagesize <span class="userconf">*</span></dt>
528<dd>
529<?php
530
531$input_pagesize = new html_inputfield(array('name' => '_pagesize', 'size' => 6, 'id' => "cfgpagesize"));
532echo $input_pagesize->show($RCI->getprop('pagesize'));
533
534?>
535<div>Show up to X items in list view.</div>
536</dd>
537
538<dt class="propname">prefer_html <span class="userconf">*</span></dt>
539<dd>
540<?php
541
542$check_htmlview = new html_checkbox(array('name' => '_prefer_html', 'id' => "cfghtmlview", 'value' => 1));
543echo $check_htmlview->show(intval($RCI->getprop('prefer_html')));
544
545?>
546<label for="cfghtmlview">Prefer displaying HTML messages</label><br />
547</dd>
548
549<dt class="propname">preview_pane <span class="userconf">*</span></dt>
550<dd>
551<?php
552
553$check_prevpane = new html_checkbox(array('name' => '_preview_pane', 'id' => "cfgprevpane", 'value' => 1));
554echo $check_prevpane->show(intval($RCI->getprop('preview_pane')));
555
556?>
557<label for="cfgprevpane">If preview pane is enabled</label><br />
558</dd>
559
560<dt class="propname">htmleditor <span class="userconf">*</span></dt>
561<dd>
562<label for="cfghtmlcompose">Compose HTML formatted messages</label>
563<?php
564
565$select_htmlcomp = new html_select(array('name' => '_htmleditor', 'id' => "cfghtmlcompose"));
566$select_htmlcomp->add('never', 0);
567$select_htmlcomp->add('always', 1);
568$select_htmlcomp->add('on reply to HTML message only', 2);
569echo $select_htmlcomp->show(intval($RCI->getprop('htmleditor')));
570
571?>
572</dd>
573
574<dt class="propname">draft_autosave <span class="userconf">*</span></dt>
575<dd>
576<label for="cfgautosave">Save compose message every</label>
577<?php
578
579$select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => 'cfgautosave'));
580$select_autosave->add('never', 0);
581foreach (array(1, 3, 5, 10) as $i => $min)
582  $select_autosave->add("$min min", $min*60);
583
584echo $select_autosave->show(intval($RCI->getprop('draft_autosave')));
585
586?>
587</dd>
588
589<dt class="propname">mdn_requests <span class="userconf">*</span></dt>
590<dd>
591<?php
592
593$mdn_opts = array(
594    0 => 'ask the user',
595    1 => 'send automatically',
596    3 => 'send receipt to user contacts, otherwise ask the user',
597    4 => 'send receipt to user contacts, otherwise ignore',
598    2 => 'ignore',
599);
600
601$select_mdnreq = new html_select(array('name' => '_mdn_requests', 'id' => "cfgmdnreq"));
602$select_mdnreq->add(array_values($mdn_opts), array_keys($mdn_opts));
603echo $select_mdnreq->show(intval($RCI->getprop('mdn_requests')));
604
605?>
606<div>Behavior if a received message requests a message delivery notification (read receipt)</div>
607</dd>
608
609<dt class="propname">mime_param_folding <span class="userconf">*</span></dt>
610<dd>
611<?php
612
613$select_param_folding = new html_select(array('name' => '_mime_param_folding', 'id' => "cfgmimeparamfolding"));
614$select_param_folding->add('Full RFC 2231 (Roundcube, Thunderbird)', '0'); 
615$select_param_folding->add('RFC 2047/2231 (MS Outlook, OE)', '1');
616$select_param_folding->add('Full RFC 2047 (deprecated)', '2');
617
618echo $select_param_folding->show(intval($RCI->getprop('mime_param_folding')));
619
620?>
621<div>How to encode attachment long/non-ascii names</div>
622</dd>
623
624</dl>
625
626<p class="hint"><span class="userconf">*</span>&nbsp; These settings are defaults for the user preferences</p>
627</fieldset>
628
629<?php
630
631echo '<p><input type="submit" name="submit" value="' . ($RCI->configured ? 'UPDATE' : 'CREATE') . ' CONFIG" ' . ($RCI->failures ? 'disabled' : '') . ' /></p>';
632
633?>
634</form>
Note: See TracBrowser for help on using the repository browser.