aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/extender.php
diff options
context:
space:
mode:
authoricewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-04-08 17:34:21 +0000
committericewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-04-08 17:34:21 +0000
commitfaf7ee8690c1ede38c4bd85c722de8e3012eb584 (patch)
treed0b5264409b1f275015cc693aa52eb71a99baf48 /engine/lib/extender.php
parent146062199ca57fdf34ff3a7acc603c63b644e290 (diff)
downloadelgg-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.php34
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)