示例#1
0
 /**
  * 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;
 }
示例#2
0
 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;
 }