diff options
-rw-r--r-- | engine/lib/annotations.php | 21 | ||||
-rw-r--r-- | engine/lib/extender.php | 34 | ||||
-rw-r--r-- | engine/lib/metadata.php | 22 | ||||
-rw-r--r-- | engine/schema/mysql.sql | 4 |
4 files changed, 33 insertions, 48 deletions
diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index c71d235f8..68c9bfc22 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -117,27 +117,6 @@ } /** - * 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_annotation_valuetype($value, $value_type = "") - { - if ($value_type!="") - return $value_type; - - // This is crude - if (is_int($value)) return 'integer'; - - return 'tag'; - } - - /** * Get a specific annotation. * * @param int $annotation_id 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) diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 65b2a9d40..76c953c85 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -112,27 +112,7 @@ return new ElggMetadata($row); } - - /** - * 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_metadata_valuetype($value, $value_type = "") - { - if ($value_type!="") - return $value_type; - - // This is crude - if (is_int($value)) return 'integer'; - - return 'tag'; - } + /** * Get a specific item of metadata. diff --git a/engine/schema/mysql.sql b/engine/schema/mysql.sql index ea10ccf6c..9cd51c30e 100644 --- a/engine/schema/mysql.sql +++ b/engine/schema/mysql.sql @@ -147,7 +147,7 @@ CREATE TABLE `prefix_annotations` ( `name_id` int(11) NOT NULL,
`value_id` int(11) NOT NULL,
- `value_type` enum ('integer','tag','text','file') NOT NULL,
+ `value_type` enum ('integer','text') NOT NULL,
`owner_guid` bigint(20) unsigned NOT NULL,
`access_id` int(11) NOT NULL,
@@ -165,7 +165,7 @@ CREATE TABLE `prefix_metadata` ( `name_id` int(11) NOT NULL,
`value_id` int(11) NOT NULL,
- `value_type` enum ('integer','tag','text','file') NOT NULL,
+ `value_type` enum ('integer','text') NOT NULL,
`owner_guid` bigint(20) unsigned NOT NULL,
`access_id` int(11) NOT NULL,
|