public function transformContent() { $entryId = $this->getRequest()->getParameter('entryid'); if ($entryId === null) { $this->displayEntrySelection('delete'); } else { $form_yes = $this->getForm('delete_yes'); $form_no = $this->getForm('delete_no'); if ($form_no->isSent() || $form_yes->isSent()) { $entry = null; if ($form_yes->isSent()) { $entry = new Entry(); $entry->setId($entryId); } $this->getGuestbookService()->deleteEntry($entry); } else { $hidden_yes_entryid = $form_yes->getFormElementByName('entryid'); $hidden_yes_entryid->setAttribute('value', $entryId); $form_yes->transformOnPlace(); $hidden_no_entryid = $form_no->getFormElementByName('entryid'); $hidden_no_entryid->setAttribute('value', $entryId); $form_no->transformOnPlace(); $template_confirm_text = $this->getTemplate('confirm_text'); $template_confirm_text->transformOnPlace(); } } }
public function transformContent() { $entryId = $this->getRequest()->getParameter('entryid'); if ($entryId === null) { $this->displayEntrySelection('edit'); } else { // pre-fill edit form by directly accessing the APF form objects $gS = $this->getGuestbookService(); $form = $this->getForm('edit_entry'); if ($form->isSent() === false) { $entry = $gS->loadEntry($entryId); $editor = $entry->getEditor(); $name = $form->getFormElementByName('name'); $name->setAttribute('value', $editor->getName()); $email = $form->getFormElementByName('email'); $email->setAttribute('value', $editor->getEmail()); $website = $form->getFormElementByName('website'); $website->setAttribute('value', $editor->getWebsite()); $title = $form->getFormElementByName('title'); $title->setAttribute('value', $entry->getTitle()); $text = $form->getFormElementByName('text'); $text->setContent($entry->getText()); $hiddenEntryId = $form->getFormElementByName('entryid'); $hiddenEntryId->setAttribute('value', $entry->getId()); $hiddenEditorId = $form->getFormElementByName('editorid'); $hiddenEditorId->setAttribute('value', $editor->getId()); } else { // save entry if ($form->isValid() === true) { $entry = new Entry(); $editor = new User(); $name = $form->getFormElementByName('name'); $editor->setName($name->getAttribute('value')); $email = $form->getFormElementByName('email'); $editor->setEmail($email->getAttribute('value')); $website = $form->getFormElementByName('website'); $editor->setWebsite($website->getAttribute('value')); $title = $form->getFormElementByName('title'); $entry->setTitle($title->getAttribute('value')); $text = $form->getFormElementByName('text'); $entry->setText($text->getContent()); // retrieve the entry id from the hidden field $hiddenEntryId = $form->getFormElementByName('entryid'); $entry->setId($hiddenEntryId->getAttribute('value')); // retrieve the editor id from the hidden field $hiddenEditorId = $form->getFormElementByName('editorid'); $editor->setId($hiddenEditorId->getAttribute('value')); $entry->setEditor($editor); $gS->saveEntry($entry); } } $form->transformOnPlace(); } }
/** * Returns the desired instance of the GenericORMapper configured for this application case. * * @param GenericDomainObject[] A list of generic entries. * @param boolean $addEditor Indicates, if the editor should be mapped to the entry object. * * @return Entry[] A list of guestbook domain objects. * * @author Christian Achatz * @version * Version 0.1, 06.05.2009<br /> */ private function mapGenericEntries2DomainObjects(array $entries = [], $addEditor = true) { // return empty array, because having no entries means nothing to do! if (count($entries) == 0) { return []; } // invoke benchmarker to be able to monitor the performance /* @var $t BenchmarkTimer */ $t = Singleton::getInstance(BenchmarkTimer::class); $t->start('mapGenericEntries2DomainObjects()'); // load the language object for the current language to enable // language dependent mapping! $lang = $this->getCurrentLanguage(); // define the criterion $critEntries = new GenericCriterionObject(); $critEntries->addRelationIndicator('Attribute2Language', $lang); $gbEntries = []; /* @var $current GenericDomainObject */ foreach ($entries as $current) { // Check, whether there are attributes related in the current language. // If not, do NOT add an entry, because it will be empty! $attributes = $this->orm->loadRelatedObjects($current, 'Entry2LangDepValues', $critEntries); if (count($attributes) > 0) { // load the entry itself $entry = new Entry(); $entry->setCreationTimestamp($current->getProperty('CreationTimestamp')); foreach ($attributes as $attribute) { if ($attribute->getProperty('Name') == 'title') { $entry->setTitle($attribute->getProperty('Value')); } if ($attribute->getProperty('Name') == 'text') { $entry->setText($attribute->getProperty('Value')); } } // add the editor's data if ($addEditor === true) { $editor = new User(); $user = $this->orm->loadRelatedObjects($current, 'Editor2Entry'); $editor->setName($user[0]->getProperty('Name')); $editor->setEmail($user[0]->getProperty('Email')); $editor->setWebsite($user[0]->getProperty('Website')); $editor->setId($user[0]->getProperty('UserID')); $entry->setEditor($editor); } $entry->setId($current->getProperty('EntryID')); $gbEntries[] = $entry; } } $t->stop('mapGenericEntries2DomainObjects()'); return $gbEntries; }