From 9cf46b6ef1b1d13dabd1585dbc5f59c96ce3e72b Mon Sep 17 00:00:00 2001 From: olivier <> Date: Wed, 8 Apr 2009 17:00:24 +0000 Subject: [PATCH] eztelemeta: add base extension folders, ini files and Telemeta Item datatype class --- .../datatypes/telemetaitem/telemetaitem.php | 109 ++++++++++++++++++ tools/eztelemeta/exceptions/invalidparams.php | 27 +++++ tools/eztelemeta/settings/content.ini.append | 4 + tools/eztelemeta/settings/design.ini.append | 2 + 4 files changed, 142 insertions(+) create mode 100644 tools/eztelemeta/datatypes/telemetaitem/telemetaitem.php create mode 100644 tools/eztelemeta/exceptions/invalidparams.php create mode 100644 tools/eztelemeta/settings/content.ini.append create mode 100644 tools/eztelemeta/settings/design.ini.append diff --git a/tools/eztelemeta/datatypes/telemetaitem/telemetaitem.php b/tools/eztelemeta/datatypes/telemetaitem/telemetaitem.php new file mode 100644 index 00000000..bfad1382 --- /dev/null +++ b/tools/eztelemeta/datatypes/telemetaitem/telemetaitem.php @@ -0,0 +1,109 @@ + null, + 'title' => null, + 'description' => null, + 'rights' => null, + 'duration' => null, + 'creator' => null, + 'timeFetched' => null + ); + + + /** + * Constructs a new Telemeta item data type + * + * @param string $data Serialized data + * @throws telemetaDatatypeInvalidParamsError + */ + public function __construct($data = null) + { + if ($data) { + $data = unserialize($data); + if (!$data) { + throw new telemetaInvalidParamsError("Couldn't unserialize Telemeta Item data"); + } + $this->properties = array_merge($this->properties, $data); + } + } + + private function fetch($itemId) + { + if ($itemId == 1000) { + $this->properties['id'] = 1000; + $this->properties['title'] = "Pulp Fiction"; + $this->properties['description'] = "A crazy movie"; + $this->properties['rights'] = "Copyright Holywood"; + $this->properties['duration'] = 3600 + 1800; + $this->properties['creator'] = "Quentin Tarantino"; + $this->properties['timeFetched'] = time(); + return true; + } + return false; + } + + public function __toString() + { + return serialize($this->properties); + } + + public static function createFromString($str) + { + return new self($str); + } + + public function attribute($name) + { + return $this->__get($name); + } + + public function hasAttribute($name) + { + return $this->__isset($name); + } + + public function __get($name) + { + if ($this->__isset($name)) { + return $this->properties[$name]; + } else { + throw new ezcBasePropertyNotFoundException($name); + } + } + + public function __isset($name) + { + return (array_key_exists($name, $this->properties) and !is_null($this->properties[$name])); + } + + public function hasContent() + { + return $this->__isset('id'); + } +} + + +?> + diff --git a/tools/eztelemeta/exceptions/invalidparams.php b/tools/eztelemeta/exceptions/invalidparams.php new file mode 100644 index 00000000..ac85e7d8 --- /dev/null +++ b/tools/eztelemeta/exceptions/invalidparams.php @@ -0,0 +1,27 @@ + diff --git a/tools/eztelemeta/settings/content.ini.append b/tools/eztelemeta/settings/content.ini.append new file mode 100644 index 00000000..95000c21 --- /dev/null +++ b/tools/eztelemeta/settings/content.ini.append @@ -0,0 +1,4 @@ +[DataTypeSettings] +ExtensionDirectories[]=eztelemeta +AvailableDataTypes[]=telemetaitem + diff --git a/tools/eztelemeta/settings/design.ini.append b/tools/eztelemeta/settings/design.ini.append new file mode 100644 index 00000000..dd406b38 --- /dev/null +++ b/tools/eztelemeta/settings/design.ini.append @@ -0,0 +1,2 @@ +[ExtensionSettings] +DesignExtensions[]=eztelemeta -- 2.39.5