/**
  * Perform the advanced node action
  */
 public function indexAction()
 {
     $nodeSettings = $this->models['NodeSetting']->getNodeSettings($this->node->id);
     $form = new NodeSettingsForm($this->request->getBasePath(), $nodeSettings);
     if (!$form->isSubmitted()) {
         $this->setAdvancedView($form);
         return;
     }
     if ($form->isCancelled()) {
         $this->response->setRedirect($this->request->getBasePath());
         return;
     }
     try {
         $nodeSettings = $form->getNodeSettings(true);
         $this->models['NodeSetting']->setNodeSettings($nodeSettings);
         $this->clearCache();
         $this->addInformation(self::TRANSLATION_INFORMATION_SAVED, array('name' => $this->node->name));
         $this->response->setRedirect($this->request->getBasePath());
     } catch (ValidationException $saveException) {
         $validationException = new ValidationException();
         $errors = $saveException->getAllErrors();
         foreach ($errors as $fieldErrors) {
             $validationException->addErrors(NodeSettingsForm::FIELD_SETTINGS, $fieldErrors);
         }
         $form->setValidationException($validationException);
         $this->setAdvancedView($form);
     }
 }
예제 #2
0
 /**
  * Construct this view
  * @param joppa\form\backend\SiteSelectForm $siteSelectForm form to select another site
  * @param joppa\form\backend\NodeSettingsForm $nodeSettingsForm form to edit the node settings
  * @param joppa\model\Site $site the current site
  * @param joppa\model\Node $node the current node
  * @return null
  */
 public function __construct(SiteSelectForm $siteSelectForm, NodeSettingsForm $nodeSettingsForm, Site $site, Node $node)
 {
     parent::__construct($siteSelectForm, $site, $node, 'joppa/backend/node.advanced');
     $nodeSettings = $nodeSettingsForm->getNodeSettings(false);
     $settings = $this->getHtmlFromNodeSettings($nodeSettings);
     $this->set('node', $node);
     $this->set('form', $nodeSettingsForm);
     $this->set('settings', $settings);
     $this->addStyle(self::STYLE);
     $this->addInlineJavascript("joppaInitializeAdvanced();");
 }