Exemple #1
0
 /**
  * Adds an input element to the complete form
  *
  * @param stdClass $item
  * @param mod_feedback_complete_form $form
  */
 public function complete_form_element($item, $form)
 {
     $name = $this->get_display_name($item);
     $inputname = $item->typ . '_' . $item->id;
     if ($form->get_mode() != mod_feedback_complete_form::MODE_COMPLETE) {
         $form->add_form_element($item, ['static', $inputname, $name], false, false);
     } else {
         $form->add_form_element($item, ['recaptcha', $inputname, $name], false, false);
     }
     // Add recaptcha validation to the form.
     $form->add_validation_rule(function ($values, $files) use($item, $form) {
         $elementname = $item->typ . '_' . $item->id;
         $recaptchaelement = $form->get_form_element($elementname);
         if (empty($values['recaptcha_response_field'])) {
             return array($elementname => get_string('required'));
         } else {
             if (!empty($values['recaptcha_challenge_field'])) {
                 $challengefield = $values['recaptcha_challenge_field'];
                 $responsefield = $values['recaptcha_response_field'];
                 if (true !== ($result = $recaptchaelement->verify($challengefield, $responsefield))) {
                     return array($elementname => $result);
                 }
             } else {
                 return array($elementname => get_string('missingrecaptchachallengefield'));
             }
         }
         return true;
     });
 }
Exemple #2
0
 /**
  * Adds an input element to the complete form
  *
  * @param stdClass $item
  * @param mod_feedback_complete_form $form
  */
 public function complete_form_element($item, $form)
 {
     if ($form->get_mode() == mod_feedback_complete_form::MODE_VIEW_RESPONSE) {
         $value = strval($form->get_item_value($item));
     } else {
         $value = $this->get_current_value($item, $form->get_feedback(), $form->get_current_course_id());
     }
     $printval = $this->get_printval($item, (object) ['value' => $value]);
     $class = '';
     switch ($item->presentation) {
         case self::MODE_RESPONSETIME:
             $class = 'info-responsetime';
             $value = $value ? self::CURRENTTIMESTAMP : '';
             break;
         case self::MODE_COURSE:
             $class = 'info-course';
             break;
         case self::MODE_CATEGORY:
             $class = 'info-category';
             break;
     }
     $name = $this->get_display_name($item);
     $inputname = $item->typ . '_' . $item->id;
     $element = $form->add_form_element($item, ['select', $inputname, $name, array($value => $printval), array('class' => $class)], false, false);
     $form->set_element_default($inputname, $value);
     $element->freeze();
     if ($form->get_mode() == mod_feedback_complete_form::MODE_COMPLETE) {
         $element->setPersistantFreeze(true);
     }
 }