/** * Maps a domain object to a GenericDomainObject to prepare the entry for saving it. * * @param Entry $domEntry The Entry domain object. * * @return GenericDomainObject The generic domain object representing the Entry object. * * @author Christian Achatz * @version * Version 0.1, 06.05.2009<br /> */ private function mapDomainObject2GenericEntry(Entry $domEntry) { $lang = $this->getCurrentLanguage(); $domEditor = $domEntry->getEditor(); $editor = new GenericDomainObject('User'); $editor->setProperty('Name', $domEditor->getName()); $editor->setProperty('Email', $domEditor->getEmail()); $editor->setProperty('Website', $domEditor->getWebsite()); $editorId = $domEditor->getId(); if (!empty($editorId)) { $editor->setProperty('UserID', $editorId); } // try to load an existing title attribute to avoid new attributes // on updates and merge changes $title = $this->getGenericAttribute($domEntry, 'title'); $title->setProperty('Name', 'title'); $title->setProperty('Value', $domEntry->getTitle()); $title->addRelatedObject('Attribute2Language', $lang); $text = $this->getGenericAttribute($domEntry, 'text'); $text->setProperty('Name', 'text'); $text->setProperty('Value', $domEntry->getText()); $text->addRelatedObject('Attribute2Language', $lang); // setup generic domain object structure to preserve the relations $entry = new GenericDomainObject('Entry'); $entry->addRelatedObject('Entry2LangDepValues', $title); $entry->addRelatedObject('Entry2LangDepValues', $text); $entry->addRelatedObject('Editor2Entry', $editor); $gb = $this->getCurrentGuestbook(); $entry->addRelatedObject('Guestbook2Entry', $gb); $entryId = $domEntry->getId(); if (!empty($entryId)) { $entry->setProperty('EntryID', $entryId); } return $entry; }
$user = new GenericDomainObject('User'); $user->setProperty('Username', 'admin'); $user->setProperty('Password', md5('admin')); $user->setProperty('Name', 'Admin'); $user->setProperty('Email', 'root@localhost'); $userId = $orm->saveObject($user); $user->setProperty('UserID', $userId); // --- english attributes of the guestbook ------------------------------------------------------ $titleEn = new GenericDomainObject('Attribute'); $titleEn->setProperty('Name', 'title'); $titleEn->setProperty('Value', 'My guestbook'); $titleEn->addRelatedObject('Attribute2Language', $langEn); $descriptionEn = new GenericDomainObject('Attribute'); $descriptionEn->setProperty('Name', 'description'); $descriptionEn->setProperty('Value', 'This is my first guestbook instance of the guestbook2009 module!'); $descriptionEn->addRelatedObject('Attribute2Language', $langEn); // --- german attributes of the guestbook ------------------------------------------------------- $titleDe = new GenericDomainObject('Attribute'); $titleDe->setProperty('Name', 'title'); $titleDe->setProperty('Value', 'Mein Gästebuch'); $titleDe->addRelatedObject('Attribute2Language', $langDe); $descriptionDe = new GenericDomainObject('Attribute'); $descriptionDe->setProperty('Name', 'description'); $descriptionDe->setProperty('Value', 'Dies ist die erste Instanz des neuen guestbook2009 Moduls!'); $descriptionDe->addRelatedObject('Attribute2Language', $langDe); // --- save guestbook with attributes ----------------------------------------------------------- $guestbook->addRelatedObject('Guestbook2LangDepValues', $titleEn); $guestbook->addRelatedObject('Guestbook2LangDepValues', $descriptionEn); $guestbook->addRelatedObject('Guestbook2LangDepValues', $titleDe); $guestbook->addRelatedObject('Guestbook2LangDepValues', $descriptionDe); $orm->saveObject($guestbook);