/**
  * @param ITrackQuestionTemplate $question
  * @param ITrackAnswer $answer
  * @return FormField
  */
 public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer)
 {
     $options = array();
     if ($question->IsCountrySelector) {
         $extra_options = array('Worldwide' => 'Worldwide', 'Prefer not to say' => 'Prefer not to say', 'Too many to list' => 'Too many to list');
         $options = array_merge($extra_options, CountryCodes::$iso_3166_countryCodes);
     } else {
         foreach ($question->Values()->sort('Order') as $val) {
             $options[$val->ID] = empty($val->Label) ? $val->Value : $val->Label;
         }
     }
     $default_value = $question->DefaultValue();
     $field = $question->IsMultiSelect ? new MultiDropdownField($question->name(), $question->label(), $options) : new DropdownField($question->name(), $question->label(), $options);
     $field->setFieldHolderTemplate('BootstrapFieldHolder');
     if ($question->isReadOnly()) {
         $field->setDisabled(true);
     }
     if ($question->isMandatory()) {
         $field->setAttribute('data-rule-required', 'true');
         $field->setAttribute('aria-required', 'true');
     }
     if (!is_null($default_value) && $default_value->exists()) {
         $field->setValue($default_value->ID);
     }
     if (!is_null($answer)) {
         $field->setValue($answer->value());
     }
     $empty_string = $question->EmptyString;
     if (!empty($empty_string)) {
         if ($question->UseChosenPlugin && $question->IsMultiSelect) {
             $field->setAttribute('data-placeholder', $empty_string);
         } else {
             $field->setEmptyString($empty_string);
         }
     }
     if ($question->UseChosenPlugin) {
         $field->addExtraClass('chosen');
         $field->addExtraClass('chosen-visible');
         Requirements::customScript("jQuery(document).ready(function(\$){\n                            var form    = \$('form');\n                            var form_id = form.attr('id');\n                            \$('#'+form_id+'_{$question->name()}').chosen({width: '30%'});\n                        });\n                    ");
     }
     return $field;
 }
 /**
  * @param ITrackQuestionTemplate $question
  * @param ITrackAnswer $answer
  * @return FormField
  */
 public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer)
 {
     $field = new CheckboxField($question->name(), $question->label());
     $field->setFieldHolderTemplate('BootstrapFieldHolder');
     $field->setValue($question->initialValue());
     if ($question->isReadOnly()) {
         $field->setDisabled(true);
     }
     if ($question->isMandatory()) {
         $field->setAttribute('data-rule-required', 'true');
     }
     if (!is_null($answer)) {
         $field->setValue($answer->value());
     }
     $field->setFieldHolderTemplate('RSVPCheckboxField_holder');
     return $field;
 }
 /**
  * @param ITrackQuestionTemplate $question
  * @param ITrackAnswer $answer
  * @return FormField
  */
 public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer)
 {
     $options = array();
     foreach ($question->Values()->sort('Order') as $val) {
         $options[$val->ID] = empty($val->Label) ? $val->Value : $val->Label;
     }
     $field = new TrackCheckboxSetField($question->name(), $question->label(), $options, $value = '', $form = null, $emptyString = null, $question);
     $field->setFieldHolderTemplate('BootstrapFieldHolder');
     if ($question->isReadOnly()) {
         $field->setDisabled(true);
     }
     if ($question->isMandatory()) {
         $field->setRequired();
     }
     if (!is_null($answer)) {
         $field->setValue($answer->value());
     }
     $field->setTemplate('RSVPCheckboxSetField');
     return $field;
 }
 /**
  * @param ITrackQuestionTemplate $question
  * @param ITrackAnswer $answer
  * @return FormField
  */
 public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer)
 {
     $options = array();
     foreach ($question->Values()->sort('Order') as $val) {
         $options[$val->ID] = empty($val->Label) ? $val->Value : $val->Label;
     }
     $field = new OptionsetField($question->name(), $question->label(), $options);
     $field->setFieldHolderTemplate('BootstrapFieldHolder');
     $default_value = $question->getDefaultValue();
     if (!is_null($default_value) && $default_value->ID > 0) {
         $field->setValue($default_value->ID);
     }
     if ($question->isReadOnly()) {
         $field->setDisabled(true);
     }
     if ($question->isMandatory()) {
         $field->setAttribute('data-rule-required', 'true');
     }
     if (!is_null($answer)) {
         $field->setValue($answer->value());
     }
     $field->setTemplate('RSVPOptionSetField');
     return $field;
 }
コード例 #5
0
 /**
  * @param ITrackQuestionTemplate $question
  * @return ITrackAnswer
  */
 public function findAnswerByQuestion(ITrackQuestionTemplate $question)
 {
     foreach ($this->ExtraAnswers() as $answer) {
         if ($answer->question()->getIdentifier() === $question->getIdentifier()) {
             if (!is_null($answer)) {
                 return $answer;
             }
         }
     }
     return null;
 }
 /**
  * @param ITrackQuestionTemplate $question
  * @param ITrackAnswer $answer
  * @return FormField
  */
 public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer)
 {
     $field = new LiteralField($question->name(), $question->Content);
     $field->setFieldHolderTemplate('BootstrapFieldHolder');
     return $field;
 }