/** * @param ISurveyStep $step * @param string $action * @param string $form_name * @return Form */ public function build(ISurveyStep $step, $action, $form_name = 'SurveyStepForm') { $fields = new FieldList(); $fields->add(new HiddenField('survey_id', 'survey_id', $step->survey()->getIdentifier())); $fields->add(new HiddenField('step_id', 'step_id', $step->getIdentifier())); $content = $step->template()->content(); if (!empty($content)) { $fields->add(new LiteralField('content', $content)); } if ($step->template()->canSkip()) { $fields->add(new LiteralField('skip', sprintf('<p><strong>If you do not wish to answer these questions, you may <a href="%s%s/skip-step">skip to the next section</a>.</strong></p>', Controller::curr()->Link(), $step->template()->title()))); } if (!empty($content) || $step->template()->canSkip()) { $fields->add(new LiteralField('hr', '<hr/>')); } $validator = null; $actions = new FieldList(FormAction::create('AddEntity')->setTitle("Add")->setUseButtonTag(true), FormAction::create('Done')->setTitle("Done")->setUseButtonTag(true)); $form = new DynamicStepForm(Controller::curr(), $form_name, $fields, $actions, $step, $validator); $form->setTemplate('DynamicEntityStepForm'); $form->setAttribute('class', 'survey_step_form'); return $form; }