summaryrefslogtreecommitdiff
path: root/inc/Input.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/Input.class.php')
-rw-r--r--inc/Input.class.php34
1 files changed, 34 insertions, 0 deletions
diff --git a/inc/Input.class.php b/inc/Input.class.php
index f4174404a..35aecdb45 100644
--- a/inc/Input.class.php
+++ b/inc/Input.class.php
@@ -175,6 +175,40 @@ class Input {
return (array) $this->access[$name];
}
+ /**
+ * Create a simple key from an array key
+ *
+ * This is useful to access keys where the information is given as an array key or as a single array value.
+ * For example when the information was submitted as the name of a submit button.
+ *
+ * This function directly changes the access array.
+ *
+ * Eg. $_REQUEST['do']['save']='Speichern' becomes $_REQUEST['do'] = 'save'
+ *
+ * This function returns the $INPUT object itself for easy chaining
+ *
+ * @param $name
+ * @return Input
+ */
+ public function extract($name){
+ if(!isset($this->access[$name])) return $this;
+ if(!is_array($this->access[$name])) return $this;
+ $keys = array_keys($this->access[$name]);
+ if(!$keys){
+ // this was an empty array
+ $this->remove($name);
+ return $this;
+ }
+ // get the first key
+ $value = array_shift($keys);
+ if($value === 0){
+ // we had a numeric array, assume the value is not in the key
+ $value = array_shift($this->access[$name]);
+ }
+
+ $this->set($name, $value);
+ return $this;
+ }
}
/**