diff options
author | icewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-04-08 17:34:21 +0000 |
---|---|---|
committer | icewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-04-08 17:34:21 +0000 |
commit | faf7ee8690c1ede38c4bd85c722de8e3012eb584 (patch) | |
tree | d0b5264409b1f275015cc693aa52eb71a99baf48 /engine/lib/extender.php | |
parent | 146062199ca57fdf34ff3a7acc603c63b644e290 (diff) | |
download | elgg-faf7ee8690c1ede38c4bd85c722de8e3012eb584.tar.gz elgg-faf7ee8690c1ede38c4bd85c722de8e3012eb584.tar.bz2 |
Marcus Povey <marcus@dushka.co.uk>
* Simplified extender types, now only supports integer and text - types deamed not to be necessary (yet), also simplifies import and export.
* Types better detected.
git-svn-id: https://code.elgg.org/elgg/trunk@424 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/extender.php')
-rw-r--r-- | engine/lib/extender.php | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/engine/lib/extender.php b/engine/lib/extender.php index 26166a225..5a5d29e08 100644 --- a/engine/lib/extender.php +++ b/engine/lib/extender.php @@ -41,9 +41,9 @@ switch ($this->attributes['value_type']) { case 'integer' : return (int)$this->attributes['value']; - case 'tag' : - case 'text' : - case 'file' : return sanitise_string($this->attributes['value']); + //case 'tag' : + //case 'file' : + case 'text' : return sanitise_string($this->attributes['value']); default : throw new InstallationException("Type {$this->attributes['value_type']} is not supported. This indicates an error in your installation, most likely caused by an incomplete upgrade."); } @@ -59,10 +59,14 @@ * * @param string $name * @param mixed $value + * @param string $value_type * @return boolean */ - protected function set($name, $value) { + protected function set($name, $value, $value_type = "") { + $this->attributes[$name] = $value; + $this->attributes['value_type'] = detect_extender_valuetype($value, $value_type); + return true; } @@ -163,6 +167,28 @@ } /** + * Detect the value_type for a given value. + * Currently this is very crude. + * + * TODO: Make better! + * + * @param mixed $value + * @param string $value_type If specified, overrides the detection. + * @return string + */ + function detect_extender_valuetype($value, $value_type = "") + { + if ($value_type!="") + return $value_type; + + // This is crude + if (is_int($value)) return 'integer'; + if (is_numeric($value)) return 'integer'; + + return 'text'; + } + + /** * Handler called by trigger_plugin_hook on the "import" event. */ function import_extender_plugin_hook($hook, $entity_type, $returnvalue, $params) |