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;
 }