public function transformContent()
 {
     $form = $this->getForm('create_entry');
     if ($form->isSent() && $form->isValid()) {
         // Fill domain objects by extracting the values
         // from the form elements directly.
         $name = $form->getFormElementByName('name');
         $email = $form->getFormElementByName('email');
         $website = $form->getFormElementByName('website');
         $user = new User();
         $user->setName($name->getAttribute('value'));
         $user->setEmail($email->getAttribute('value'));
         $user->setWebsite($website->getAttribute('value'));
         $title = $form->getFormElementByName('title');
         $text = $form->getFormElementByName('text');
         $entry = new Entry();
         $entry->setTitle($title->getAttribute('value'));
         $entry->setText($text->getContent());
         $entry->setEditor($user);
         // Save the entry using the business component.
         $this->getGuestbookService()->saveEntry($entry);
     }
     // set language dependent button label by using the
     // language and context information of the current
     // DOM node.
     $config = $this->getConfiguration('APF\\modules\\guestbook2009\\pres', 'language.ini');
     $buttonLabel = $config->getSection($this->language)->getValue('form.label.button');
     $button = $form->getFormElementByName('send');
     $button->setAttribute('value', $buttonLabel);
     // Transform on definition place to render
     // the content within the surrounding div.
     $form->transformOnPlace();
     // add dynamic link
     $this->setPlaceHolder('overviewlink', LinkGenerator::generateUrl(Url::fromCurrent()->mergeQuery(['gbview' => 'list'])));
 }
 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();
     }
 }
Example #4
0
 /**
  * Deletes the given entry from the database.
  *
  * @param Entry $domEntry The guestbook entry to delete.
  *
  * @author Christian Achatz
  * @version
  * Version 0.1, 21.05.2009<br />
  */
 public function deleteEntry(Entry $domEntry)
 {
     $entry = new GenericDomainObject('Entry');
     $entry->setProperty('EntryID', $domEntry->getId());
     // Delete the attributes of the entry, so that the object
     // itself can be deleted. If we don't do this, the ORM
     // will not be glad, because the entry still has child objects!
     $attributes = $this->orm->loadRelatedObjects($entry, 'Entry2LangDepValues');
     foreach ($attributes as $attribute) {
         $this->orm->deleteObject($attribute);
     }
     // delete associated users, because we don't need them anymore.
     $users = $this->orm->loadRelatedObjects($entry, 'Editor2Entry');
     foreach ($users as $user) {
         $this->orm->deleteObject($user);
     }
     // now delete entry object (associations are deleted automatically)
     $this->orm->deleteObject($entry);
 }