/**
  * Check required course fields
  *
  * @access private
  * 
  */
 private function checkCourseDefinedFields()
 {
     global $ilUser;
     include_once 'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php';
     include_once 'Modules/Course/classes/Export/class.ilCourseUserData.php';
     $all_required = true;
     foreach (ilCourseDefinedFieldDefinition::_getFields($this->obj_id) as $field_obj) {
         $required_given = false;
         switch ($field_obj->getType()) {
             case IL_CDF_TYPE_SELECT:
                 $tmp_values = ilUtil::stripSlashes($_POST['cdf'][$field_obj->getId()]);
                 $tmp_values = explode('_', $tmp_values, 2);
                 if (isset($tmp_values[1])) {
                     $tmp_value = isset($tmp_values[1]) ? $tmp_values[1] : '';
                     $value = '';
                     foreach ((array) $field_obj->getValues() as $v) {
                         if ($v == $tmp_value) {
                             $value = $tmp_value;
                             $required_given = true;
                             break;
                         }
                     }
                 }
                 break;
             case IL_CDF_TYPE_TEXT:
                 $value = ilUtil::stripSlashes($_POST['cdf'][$field_obj->getId()]);
                 if ($value) {
                     $required_given = true;
                 }
                 break;
         }
         $course_user_data = new ilCourseUserData($ilUser->getId(), $field_obj->getId());
         $course_user_data->setValue($value);
         $course_user_data->update();
         if ($field_obj->isRequired() and !$required_given) {
             $all_required = false;
         }
     }
     return $all_required;
 }
 /**
  * Save course defined fields
  * @param ilPropertyFormGUI $form
  */
 public static function saveCourseDefinedFields(ilPropertyFormGUI $form, $a_obj_id, $a_usr_id = 0)
 {
     global $ilUser;
     if (!$a_usr_id) {
         $a_usr_id = $ilUser->getId();
     }
     foreach (ilCourseDefinedFieldDefinition::_getFields($a_obj_id) as $field_obj) {
         switch ($field_obj->getType()) {
             case IL_CDF_TYPE_SELECT:
                 // Split value id from post
                 list($field_id, $option_id) = explode('_', $form->getInput('cdf_' . $field_obj->getId()));
                 $open_answer_indexes = (array) $field_obj->getValueOptions();
                 if (in_array($option_id, $open_answer_indexes)) {
                     $value = $form->getInput('cdf_oa_' . $field_obj->getId() . '_' . $option_id);
                 } else {
                     $value = $field_obj->getValueById($option_id);
                 }
                 break;
             case IL_CDF_TYPE_TEXT:
                 $value = $form->getInput('cdf_' . $field_obj->getId());
                 break;
         }
         $course_user_data = new ilCourseUserData($a_usr_id, $field_obj->getId());
         $course_user_data->setValue($value);
         $course_user_data->update();
     }
 }
예제 #3
0
 /**
  * Check required course fields
  *
  * @access protected
  * 
  */
 protected function validateCustomFields()
 {
     global $ilUser;
     $required_fullfilled = true;
     foreach (ilCourseDefinedFieldDefinition::_getFields($this->container->getId()) as $field_obj) {
         switch ($field_obj->getType()) {
             case IL_CDF_TYPE_SELECT:
                 // Split value id from post
                 list($field_id, $option_id) = explode('_', $_POST['cdf_' . $field_obj->getId()]);
                 #$GLOBALS['ilLog']->write(__METHOD__.': '.print_r($field_id,TRUE).' '.print_r($option_id,TRUE).' '.print_r($_POST,TRUE));
                 $open_answer_indexes = (array) $field_obj->getValueOptions();
                 if (in_array($option_id, $open_answer_indexes)) {
                     $value = $_POST['cdf_oa_' . $field_obj->getId() . '_' . $option_id];
                 } else {
                     $value = $field_obj->getValueById($option_id);
                 }
                 break;
             case IL_CDF_TYPE_TEXT:
                 $value = $_POST['cdf_' . $field_obj->getId()];
                 break;
         }
         $GLOBALS['ilLog']->write(__METHOD__ . ': new value ' . $value);
         $course_user_data = new ilCourseUserData($ilUser->getId(), $field_obj->getId());
         $course_user_data->setValue($value);
         $course_user_data->update();
         if ($field_obj->isRequired() and !$value) {
             $required_fullfilled = false;
         }
     }
     return $required_fullfilled;
 }
 /**
  * Check required course fields
  *
  * @access protected
  * 
  */
 protected function validateCustomFields()
 {
     global $ilUser;
     include_once 'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php';
     include_once 'Modules/Course/classes/Export/class.ilCourseUserData.php';
     $all_required = true;
     foreach (ilCourseDefinedFieldDefinition::_getFields($this->container->getId()) as $field_obj) {
         switch ($field_obj->getType()) {
             case IL_CDF_TYPE_SELECT:
                 $tmp_value = ilUtil::stripSlashes($_POST['cdf'][$field_obj->getId()]);
                 $value = '';
                 foreach ((array) $field_obj->getValues() as $v) {
                     if ($v == $tmp_value) {
                         $value = $tmp_value;
                         break;
                     }
                 }
                 break;
             case IL_CDF_TYPE_TEXT:
                 $value = ilUtil::stripSlashes($_POST['cdf'][$field_obj->getId()]);
                 break;
         }
         $course_user_data = new ilCourseUserData($ilUser->getId(), $field_obj->getId());
         $course_user_data->setValue($value);
         $course_user_data->update();
         if ($field_obj->isRequired() and (!strlen($value) or $value == -1)) {
             $all_required = false;
         }
     }
     return $all_required;
 }