From: Chuck Hagenbuch Date: Sun, 11 Jan 2009 05:29:37 +0000 (-0500) Subject: add old rdo examples X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=a131ac3699aaf1d1fa917ece25761e7e6d5c351e;p=horde.git add old rdo examples --- diff --git a/framework/Rdo/examples/Horde/Rdo/.gitignore b/framework/Rdo/examples/Horde/Rdo/.gitignore new file mode 100644 index 000000000..16420d497 --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/.gitignore @@ -0,0 +1 @@ +conf.php diff --git a/framework/Rdo/examples/Horde/Rdo/Clotho.php b/framework/Rdo/examples/Horde/Rdo/Clotho.php new file mode 100644 index 000000000..142da6bb8 --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/Clotho.php @@ -0,0 +1,133 @@ + array('type' => Horde_Rdo::MANY_TO_MANY, + 'mapper' => 'ResourceMapper', + 'through' => 'clotho_wbs_resources'), + 'parent' => array('type' => Horde_Rdo::ONE_TO_ONE, + 'foreignKey' => 'item_parent', + 'mapper' => 'ItemMapper'), + ); + + protected $_table = 'clotho_wbs_items'; + +} + +/** + * Dependencies + */ +class Dependency extends Horde_Rdo_Base { +} + +/** + * Dependency Mapper. + */ +class DependencyMapper extends Clotho_Mapper { + + protected $_table = 'clotho_wbs_dependencies'; + +} + +/** + * Calendars + */ +class Calendar extends Horde_Rdo_Base { +} + +/** + * Calendar Mapper. + */ +class CalendarMapper extends Clotho_Mapper { + + protected $_table = 'clotho_calendars'; + +} + +/** + * Resources + */ +class Resource extends Horde_Rdo_Base { +} + +/** + * Resource Mapper. + */ +class ResourceMapper extends Clotho_Mapper { + + protected $_relationships = array( + 'availabilities' => array('type' => Horde_Rdo::ONE_TO_MANY, + 'foreignKey' => 'resource_id', + 'mapper' => 'ResourceAvailabilityMapper'), + 'items' => array('type' => Horde_Rdo::MANY_TO_MANY, + 'mapper' => 'ItemMapper', + 'through' => 'clotho_wbs_resources'), + ); + + protected $_table = 'clotho_resources'; + +} + +/** + * ResourceAvailability + */ +class ResourceAvailability extends Horde_Rdo_Base { +} + +/** + * ResourceAvailability Mapper. + */ +class ResourceAvailabilityMapper extends Clotho_Mapper { + + protected $_relationships = array( + 'resource' => array('type' => Horde_Rdo::MANY_TO_ONE, + 'foreignKey' => 'resource_id', + 'mapper' => 'ResourceMapper'), + ); + + protected $_table = 'clotho_resource_availability'; + +} diff --git a/framework/Rdo/examples/Horde/Rdo/CountTest.php b/framework/Rdo/examples/Horde/Rdo/CountTest.php new file mode 100644 index 000000000..7f0fb209f --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/CountTest.php @@ -0,0 +1,18 @@ +appendChild($doc->createElement(get_class($this))); + foreach ($this as $field => $value) { + $f = $root->appendChild($doc->createElement($field)); + $f->appendChild($doc->createTextNode($value)); + } + + return $doc->saveXML(); + } + +} + +$im = new XmlItemMapper(); + +$i = $im->find(1); +echo $i->toXml(); diff --git a/framework/Rdo/examples/Horde/Rdo/RelationshipTest.php b/framework/Rdo/examples/Horde/Rdo/RelationshipTest.php new file mode 100644 index 000000000..107c84d46 --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/RelationshipTest.php @@ -0,0 +1,60 @@ +find(3); +echo "({$i->item_id}) {$i->item_name} has parent:\n"; +echo " ({$i->parent->item_id}) {$i->parent->item_name}\n"; + + +// one-to-many +$rm = new ResourceMapper(); + +$r = $rm->find(1); +echo "Resource ({$r->resource_id}) {$r->resource_name} has " . $r->availabilities->count() . " availabilities:\n"; +foreach ($r->availabilities as $ra) { + echo ' (' . $ra->availability_id . ') ' . $ra->resource->resource_name . " on " . strftime('%x %X', $ra->availability_date) . " (" . $ra->availability_hours . " hours)\n"; +} + + +// many-to-one +$ram = new ResourceAvailabilityMapper(); + +$ra = $ram->find(1); +echo "Resource Availability ({$ra->availability_id}) " . strftime('%x %X', $ra->availability_date) . " has resource:\n"; +echo " ({$ra->resource->resource_id}) {$ra->resource->resource_name}\n"; + + +// many-to-many +echo "Listing all Items and their Resources:\n\n"; +$im = new ItemMapper(); +foreach ($im->find(Horde_Rdo::FIND_ALL) as $i) { + if (count($i->resources)) { + echo " (" . $i->item_id . ") " . $i->item_name . " has resources:\n"; + foreach ($i->resources as $r) { + echo ' (' . $r->resource_id . ') ' . $r->resource_name . "\n"; + } + } +} + +echo "\n\nListing all Resources and their Items:\n\n"; +$rm = new ResourceMapper(); +foreach ($rm->find(Horde_Rdo::FIND_ALL) as $r) { + if (count($r->items)) { + echo " (" . $r->resource_id . ") " . $r->resource_name . " has items:\n"; + foreach ($r->items as $i) { + echo ' (' . $i->item_id . ') ' . $i->item_name . "\n"; + } + } +} diff --git a/framework/Rdo/examples/Horde/Rdo/Task.php b/framework/Rdo/examples/Horde/Rdo/Task.php new file mode 100644 index 000000000..ea2361de8 --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/Task.php @@ -0,0 +1,50 @@ +count(); +echo "# tasks: $count\n"; + +// List all tasks. +echo "Looking for all tasks:\n"; +foreach ($tm->find(Horde_Rdo::FIND_ALL) as $task) { + echo " " . $task->task_name . "\n"; +} + +// List all of Chuck's tasks. +$chuck = $tm->find(Horde_Rdo::FIND_ALL, array('task_owner' => 'chuck')); +echo "\nChuck's tasks:\n"; +foreach ($chuck as $task) { + echo " " . $task->task_name . "\n"; +} diff --git a/framework/Rdo/examples/Horde/Rdo/User.php b/framework/Rdo/examples/Horde/Rdo/User.php new file mode 100644 index 000000000..d197fdb47 --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/User.php @@ -0,0 +1,86 @@ +count(); +echo "# users: $userCount\n"; + +// Get the number of new users in May 2005 +//$userCount = $um->count('created > \'2005-05-01\' AND created <= \'2005-05-31\''); +//echo "# new: $userCount\n"; + +// Check if id 1 exists. +$exists = $um->exists(1); +echo "exists: " . ($exists ? 'yes' : 'no') . "\n"; + +// Look for Alice +$userTwo = $um->findOne(array('name' => 'Alice')); +if ($userTwo) { + echo "Found Alice: id $userTwo->id\n"; +} else { + echo "No Alice found, creating:\n"; + $userOne = $um->create(array('name' => 'Alice', 'phone' => '212-555-6565')); + $userOneId = $userOne->id; + echo "Created new user with id: $userOneId\n"; +} + +// Change the name of the user and save. +if ($userTwo) { + $userTwo->name = 'Bob'; + $result = $userTwo->save(); + var_dump($result); +} + +// List all users. +echo "Looking for all:\n"; +foreach ($um->find() as $userOb) { + echo " (" . $userOb->id . ") " . $userOb->name . "\n"; +} + +// Fetch id 2. +//$user = $um->findOne(2); +// Try to delete it. +//$result = $user->delete(); +//var_dump($result); + +/* +// $user->billingAddresses is an Iterator. +foreach ($user->billingAddresses as $billingAddress) { + echo $billingAddress->zipCode . "\n"; +} + +if ($user->favorite) { + echo $user->favorite->name . "\n"; +} else { + $user->favorite = new User(array('name' => 'Charles')); +} +*/ diff --git a/framework/Rdo/examples/Horde/Rdo/clothoData.php b/framework/Rdo/examples/Horde/Rdo/clothoData.php new file mode 100644 index 000000000..77bcb562d --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/clothoData.php @@ -0,0 +1,32 @@ +create(array('item_name' => 'Test Item', 'item_parent' => 0)); +echo get_class($item) . "\n"; +$item = $im->create(array('item_name' => 'Test Item 2', 'item_parent' => 0)); +echo get_class($item) . "\n"; +$item = $im->create(array('item_name' => 'Child Item', 'item_parent' => 1)); +echo get_class($item) . "\n"; + +$dep = $dm->create(array('dependency_type' => 'S', 'dependency_lhs_item' => 1, 'dependency_rhs_item' => 2)); +echo get_class($dep) . "\n"; + +$cal = $cm->create(array('calendar_name' => 'Test Calendar', 'calendar_hoursinday' => 8, + 'calendar_hoursinweek' => 40, 'calendar_type' => 'weekly', 'calendar_data' => '')); +echo get_class($cal) . "\n"; + +$res = $rm->create(array('resource_type' => 'M', 'resource_name' => 'Test Resource', 'resource_base_calendar' => 1)); +echo get_class($res) . "\n"; + +$resavail = $ram->create(array('resource_id' => 1, 'availability_date' => 1121404095, 'availability_hours' => 2)); +echo get_class($resavail) . "\n"; diff --git a/framework/Rdo/examples/Horde/Rdo/clothoSchema.xml b/framework/Rdo/examples/Horde/Rdo/clothoSchema.xml new file mode 100644 index 000000000..b0a26b5e4 --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/clothoSchema.xml @@ -0,0 +1,349 @@ + + + + name + true + false + + + + clotho_calendars + + + + + calendar_id + integer + false + 4 + true + 0 + 1 + + + + calendar_name + text + 128 + true + + + + + calendar_hoursinday + integer + false + 4 + true + + + + + calendar_hoursinweek + integer + false + 4 + true + + + + + calendar_type + text + 32 + true + + + + + calendar_data + text + true + + + + + +
+ + + + clotho_resource_availability + + + + + availability_id + integer + false + 4 + true + 0 + 1 + + + + resource_id + integer + false + 4 + true + + + + + availability_date + integer + false + 4 + true + + + + + availability_hours + decimal + 524290 + true + + + + + +
+ + + + clotho_resources + + + + + resource_id + integer + false + 4 + true + 0 + 1 + + + + resource_type + text + 1 + true + + + + + resource_name + text + 128 + true + + + + + resource_uid + text + 64 + false + + + + + resource_base_calendar + integer + false + 4 + true + + + + + resource_start + integer + false + 4 + false + + + + + resource_finish + integer + false + 4 + false + + + + + +
+ + + + clotho_wbs_dependencies + + + + + dependency_id + integer + false + 4 + true + 0 + 1 + + + + dependency_type + text + 1 + true + + + + + dependency_lhs_item + integer + false + 4 + true + + + + + dependency_rhs_item + integer + false + 4 + true + + + + + dependency_duration + text + 20 + false + + + + + +
+ + + + clotho_wbs_items + + + + + item_id + integer + false + 4 + true + 0 + 1 + + + + item_name + text + 128 + true + + + + + item_parent + integer + false + 4 + true + + + + + item_duration + text + 20 + false + + + + + item_start + integer + false + 4 + false + + + + + item_start_fixed + integer + false + 4 + true + 0 + + + + item_finish + integer + false + 4 + false + + + + + item_finish_fixed + integer + false + 4 + true + 0 + + + + +
+ + + + clotho_wbs_resources + + + + + item_id + integer + false + 4 + true + + + + + resource_id + integer + false + 4 + true + + + + + +
+ +
diff --git a/framework/Rdo/examples/Horde/Rdo/conf.php.dist b/framework/Rdo/examples/Horde/Rdo/conf.php.dist new file mode 100644 index 000000000..1568d9c1a --- /dev/null +++ b/framework/Rdo/examples/Horde/Rdo/conf.php.dist @@ -0,0 +1,9 @@ +