summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2012-11-10 16:11:30 +0100
committerAndreas Gohr <andi@splitbrain.org>2012-11-10 16:11:30 +0100
commit23e8f02b8aa3a74fed70f1a496bdb5423908133a (patch)
tree496675f6f244a2a847410092614ee8c3b912255e
parentc189f40b497af53aa16c5ff8f01383d848bc9ac3 (diff)
downloadrpg-23e8f02b8aa3a74fed70f1a496bdb5423908133a.tar.gz
rpg-23e8f02b8aa3a74fed70f1a496bdb5423908133a.tar.bz2
added 'text' to config plugin for multi line text configs
-rw-r--r--lib/plugins/config/settings/config.class.php33
-rw-r--r--lib/plugins/config/settings/config.metadata.php1
2 files changed, 31 insertions, 3 deletions
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index 8c48018d7..9f98231e3 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -35,6 +35,7 @@ if (!class_exists('configuration')) {
msg('No configuration metadata found at - '.htmlspecialchars($datafile),-1);
return;
}
+ $meta = array();
include($datafile);
if (isset($config['varname'])) $this->_name = $config['varname'];
@@ -68,6 +69,7 @@ if (!class_exists('configuration')) {
$keys = array_merge(array_keys($this->_metadata),array_keys($default), array_keys($local), array_keys($protected));
$keys = array_unique($keys);
+ $param = null;
foreach ($keys as $key) {
if (isset($this->_metadata[$key])) {
$class = $this->_metadata[$key][0];
@@ -425,11 +427,9 @@ if (!class_exists('setting')) {
$out = '';
if ($fmt=='php') {
- // translation string needs to be improved FIXME
- $tr = array("\n"=>'\n', "\r"=>'\r', "\t"=>'\t', "\\" => '\\\\', "'" => '\\\'');
$tr = array("\\" => '\\\\', "'" => '\\\'');
- $out = '$'.$var."['".$this->_out_key()."'] = '".strtr($this->_local, $tr)."';\n";
+ $out = '$'.$var."['".$this->_out_key()."'] = '".strtr( cleanText($this->_local), $tr)."';\n";
}
return $out;
@@ -494,6 +494,33 @@ if (!class_exists('setting_string')) {
}
}
+if (!class_exists('setting_text')) {
+ class setting_text extends setting {
+ function html(&$plugin, $echo=false) {
+ $value = '';
+ $disable = '';
+
+ if ($this->is_protected()) {
+ $value = $this->_protected;
+ $disable = 'disabled="disabled"';
+ } else {
+ if ($echo && $this->_error) {
+ $value = $this->_input;
+ } else {
+ $value = is_null($this->_local) ? $this->_default : $this->_local;
+ }
+ }
+
+ $key = htmlspecialchars($this->_key);
+ $value = formText($value);
+
+ $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
+ $input = '<textarea id="config___'.$key.'" name="config['.$key.']" class="edit" '.$disable.'>'.$value.'</textarea>';
+ return array($label,$input);
+ }
+ }
+}
+
if (!class_exists('setting_password')) {
class setting_password extends setting_string {
diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php
index 3607f56c6..33ebb7fd8 100644
--- a/lib/plugins/config/settings/config.metadata.php
+++ b/lib/plugins/config/settings/config.metadata.php
@@ -15,6 +15,7 @@
* -------------------------------------------
* '' - default class ('setting'), textarea, minimal input validation, setting output in quotes
* 'string' - single line text input, minimal input validation, setting output in quotes
+ * 'text' - multi line text input, minimal input validation, setting output in quotes
* 'numeric' - text input, accepts numbers and arithmetic operators, setting output without quotes
* if given the '_min' and '_max' parameters are used for validation
* 'numericopt' - like above, but accepts empty values