From 7ed33b2abb2d615f12ef8fb88b96dbcaade417c6 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Thu, 12 Mar 2009 23:28:53 +0100 Subject: configmgr: visual improvements (warning icons for newbies and links to each documentation page) darcs-hash:20090312222853-f7d6d-6ad28d7747ed0a72e4f8952eb1cec606e9b6d322.gz --- lib/plugins/config/admin.php | 6 ++++-- lib/plugins/config/images/danger.png | Bin 0 -> 701 bytes lib/plugins/config/images/security.png | Bin 0 -> 749 bytes lib/plugins/config/images/warning.png | Bin 0 -> 666 bytes lib/plugins/config/lang/de/lang.php | 5 ++++- lib/plugins/config/lang/en/lang.php | 4 ++++ lib/plugins/config/settings/config.class.php | 22 ++++++++++++++++++++-- lib/plugins/config/style.css | 11 ++++++++++- 8 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 lib/plugins/config/images/danger.png create mode 100644 lib/plugins/config/images/security.png create mode 100644 lib/plugins/config/images/warning.png diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php index 51e4c13a0..c25dbb507 100644 --- a/lib/plugins/config/admin.php +++ b/lib/plugins/config/admin.php @@ -16,6 +16,7 @@ define('CM_KEYMARKER','____'); // used for settings with multiple dim define('PLUGIN_SELF',dirname(__FILE__).'/'); define('PLUGIN_METADATA',PLUGIN_SELF.'settings/config.metadata.php'); +if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/plugins/config/images/'); require_once(PLUGIN_SELF.'settings/config.class.php'); // main configuration class and generic settings classes require_once(PLUGIN_SELF.'settings/extra.class.php'); // settings classes specific to these settings @@ -151,11 +152,12 @@ class admin_plugin_config extends DokuWiki_Admin_Plugin { $class = $setting->is_default() ? ' class="default"' : ($setting->is_protected() ? ' class="protected"' : ''); $error = $setting->error() ? ' class="value error"' : ' class="value"'; + $icon = $setting->caution() ? ''.$setting->caution().'' : ''; ptln(' '); ptln(' '); - ptln(' '.$setting->_out_key(true).''); - ptln(' '.$label); + ptln(' '.$setting->_out_key(true, true).''); + ptln(' '.$label.$icon); ptln(' '); ptln(' '.$input.''); ptln(' '); diff --git a/lib/plugins/config/images/danger.png b/lib/plugins/config/images/danger.png new file mode 100644 index 000000000..c37bd062e Binary files /dev/null and b/lib/plugins/config/images/danger.png differ diff --git a/lib/plugins/config/images/security.png b/lib/plugins/config/images/security.png new file mode 100644 index 000000000..2ebc4f6f9 Binary files /dev/null and b/lib/plugins/config/images/security.png differ diff --git a/lib/plugins/config/images/warning.png b/lib/plugins/config/images/warning.png new file mode 100644 index 000000000..628cf2dae Binary files /dev/null and b/lib/plugins/config/images/warning.png differ diff --git a/lib/plugins/config/lang/de/lang.php b/lib/plugins/config/lang/de/lang.php index ca46e041d..39e749bd7 100644 --- a/lib/plugins/config/lang/de/lang.php +++ b/lib/plugins/config/lang/de/lang.php @@ -17,7 +17,10 @@ $lang['updated'] = 'Einstellungen erfolgreich gespeichert.'; $lang['nochoice'] = '(keine Auswahlmöglichkeiten vorhanden)'; $lang['locked'] = 'Die Konfigurationsdatei kann nicht geändert werden, wenn dies unbeabsichtigt ist
überprüfen Sie, dass die Dateiberechtigungen korrekt gesetzt sind.'; -$lang['_configuration_manager'] = 'Konfiguration'; +$lang['danger'] = 'Gefahr: Die Änderung dieser Option könnte erheblichen Schaden anrichten.'; +$lang['warning'] = 'Warnunng: Die Änderung dieser Option könnte unbeabsichtigtes Verhalten hervorrufen.'; +$lang['security'] = 'Sicherheitswarnung: Die Änderung dieser Option könnte ein Sicherheitsrisiko darstellen.'; +$lang['_configuration_manager']= 'Konfiguration'; $lang['_header_dokuwiki'] = 'DokuWiki-Konfiguration'; $lang['_header_plugin'] = 'Plugin-Konfiguration'; $lang['_header_template'] = 'Template-Konfiguration'; diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php index 11d77c800..7566cf49a 100644 --- a/lib/plugins/config/lang/en/lang.php +++ b/lib/plugins/config/lang/en/lang.php @@ -17,6 +17,10 @@ $lang['nochoice'] = '(no other choices available)'; $lang['locked'] = 'The settings file can not be updated, if this is unintentional,
ensure the local settings file name and permissions are correct.'; +$lang['danger'] = 'Danger: Changing this option could cause severe damage.'; +$lang['warning'] = 'Warning: Changing this option could cause unintended behaviour.'; +$lang['security'] = 'Security Warning: Changing this option could present a security risk.'; + /* --- Config Setting Headers --- */ $lang['_configuration_manager'] = 'Configuration Manager'; //same as heading in intro.txt $lang['_header_dokuwiki'] = 'DokuWiki Settings'; diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 4e9270f49..81d9224f5 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -340,6 +340,12 @@ if (!class_exists('setting')) { var $_error = false; // only used by those classes which error check var $_input = NULL; // only used by those classes which error check + var $_cautionList = array( + 'basedir' => 'danger', 'baseurl' => 'danger', 'savedir' => 'danger', 'useacl' => 'danger', 'authtype' => 'danger', 'superuser' => 'danger', 'userewrite' => 'danger', + 'start' => 'warning', 'camelcase' => 'warning', 'deaccent' => 'warning', 'sepchar' => 'warning', 'compression' => 'warning', 'xsendfile' => 'warning', 'renderer_xhtml' => 'warning', + 'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'xmlrpc' => 'security' + ); + function setting($key, $params=NULL) { $this->_key = $key; @@ -439,9 +445,21 @@ if (!class_exists('setting')) { function is_default() { return !$this->is_protected() && is_null($this->_local); } function error() { return $this->_error; } - function _out_key($pretty=false) { + function caution() { + if (!array_key_exists($this->_key, $this->_cautionList)) return false; + return $this->_cautionList[$this->_key]; + } + + function _out_key($pretty=false,$url=false) { if($pretty){ - return str_replace(CM_KEYMARKER,"»",$this->_key); + $out = str_replace(CM_KEYMARKER,"»",$this->_key); + if ($url && !strstr($out,'»')) {//provide no urls for plugins, etc. + if ($out == 'start') //one exception + return ''.$out.''; + else + return ''.$out.''; + } + return $out; }else{ return str_replace(CM_KEYMARKER,"']['",$this->_key); } diff --git a/lib/plugins/config/style.css b/lib/plugins/config/style.css index fb73c7a8d..168ea432c 100644 --- a/lib/plugins/config/style.css +++ b/lib/plugins/config/style.css @@ -30,7 +30,7 @@ } #config__manager fieldset td.value { /* fixed data column width */ - width: 30em; + width: 31em; } #config__manager td.label { @@ -41,6 +41,12 @@ #config__manager td.label label { clear: both; display: block; + float: left; +} +#config__manager td.label img { + padding: 0 10px; + vertical-align: middle; + float: right; } #config__manager td.label span.outkey { @@ -59,6 +65,9 @@ #config__manager td input.edit { width: 30em; } +#config__manager td .input { + width: 30.8em; +} #config__manager td select.edit { } #config__manager td textarea.edit { width: 27.5em; -- cgit v1.2.3