/** * @param Form $form */ public function colorSelectFormSubmitted(Form $form) { $values = $form->getValues(); $subquestion = $this->subquestion_service->saveBaseProperties($values); // rekonstrukce puvodnich id_pages $id_page = $this->question_service->get($subquestion->id_question)->id_page; $options = array(); if ($subquestion->id_page_related !== null) { $related = $this->page_service->getRelatedPagesByFilter(new PageRelated(array(PageRelated::IDS_PAGE_RELATED => array($subquestion->id_page_related), \App\Base\Filter::GROUP_BY => true))); if (count($related) === 1 && $related[0] !== null) { $pages = $related[0]->getPagesRelatedAsArray(); $options = array($pages[0]->getPage()->id_page => "", $pages[1]->getPage()->id_page => ""); } } // $pages = $this->page_service->getRelatedPages($id_page); // $options = array($id_page=>"",$pages[0]->id_page); $form->getComponent("id_pages")->setItems($options); $values = $form->getValues(); $subquestion->state = $values->id_pages === (int) $id_page ? \App\Model\Subquestion::STATE_CORRECT : \App\Model\Subquestion::STATE_WRONG; $subquestion->answer = $values->id_pages; $this->subquestion_service->save($subquestion); if ($form['cancel']->isSubmittedBy()) { $this->redirect("Survey:final"); } if ($this->sessionSection->id_respondent === null) { $this->sessionSection->id_question = $subquestion->id_question; $this->redirect("Survey:personal"); } else { $this->redirect("Survey:question"); } }