/** * Checks that a fieldset called $chosenOption exists under fieldset $pickerInputFilter, * and marks all the inputs in that fieldset as required. * * Example: * Given this structure: * - name * - command * - repeat * \ picker (daily, weekly, monthly, yearly) * \ weekly * \ dayOfWeek * \ monthly * \ dayOfMonth * [...] * [...] * * For the given input filter associated to fieldset "repeat" and "weekly" as the chosen * picker option, we only want repeat/weekly/dayOfWeek to be required, but not * repeat/monthly/dayOfMonth. * * @param InputFilter $inputFilter * @param string $chosenOption * @return SimpleForm */ protected function _markInputsAsRequired(InputFilter $pickerInputFilter, $chosenOption) { if ($pickerInputFilter->has($chosenOption)) { $dependentFieldsetInputFilter = $pickerInputFilter->get($chosenOption); foreach ($dependentFieldsetInputFilter->getInputs() as $input) { /* @var Zend\InputFilter\Input $input */ $input->setRequired(true); } } return $this; }
public function renderFieldContent(FieldInterface $field, InputFilter $inputFilter, Renderer $renderer, $position, $renderLabels = true) { $output = ''; $input = $inputFilter->has($field->getId()) ? $inputFilter->get($field->getId()) : null; $messages = $input ? $input->getMessages() : null; $output .= sprintf($this->renderFormGroupOpenTag(), $messages ? ' has-feedback has-error alert alert-danger' : ''); $controlOutput = $renderer->getControlRenderer()->render($field, $position); if ($renderLabels && $this->controlRequiresLabel($controlOutput)) { $output .= $this->renderLabel($field, $renderer, $input); } $output .= $controlOutput; if ($messages) { $output .= $this->renderMessages($messages); } if ($field->getNote()) { $output .= sprintf('<div class="help-block">%s</div>', $this->view->escapeHtml($field->getNote())); } $output .= '</div>'; return $output; }