Save course extra fields - refs BT#9070

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent 14c931048d
commit 2edf952100
  1. 22
      main/admin/course_edit.php
  2. 4
      main/inc/lib/extra_field_value.lib.php

@ -317,20 +317,6 @@ if ($form->validate()) {
$warn = substr($warn, 0, -1);
}
// an extra field
$extras = array();
foreach ($course as $key => $value) {
if (substr($key, 0, 6) == 'extra_') {
$extras[substr($key, 6)] = $value;
}
if (substr($key, 0, 7) == '_extra_') {
if (!array_key_exists(substr($key, 7), $extras)) {
$extras[substr($key, 7)] = $value;
}
}
}
$tutor_id = isset($course['tutor_name']) ? $course['tutor_name'] : null;
$tutor_name = isset($platform_teachers[$tutor_id]) ? $platform_teachers[$tutor_id] : null;
$teachers = $course['group']['course_teachers'];
@ -344,6 +330,7 @@ if ($form->validate()) {
$disk_quota = $course['disk_quota'];
$subscribe = $course['subscribe'];
$unsubscribe = $course['unsubscribe'];
$course['course_code'] = $course_code;
if (!stristr($department_url, 'http://')) {
$department_url = 'http://'.$department_url;
@ -364,11 +351,8 @@ if ($form->validate()) {
Database::query($sql);
// update the extra fields
if (count($extras) > 0) {
foreach ($extras as $key => $value) {
CourseManager::update_course_extra_field_value($course_code, $key, $value);
}
}
$courseFieldValue = new ExtraFieldValue('course');
$courseFieldValue->save_field_values($course);
$addTeacherToSessionCourses = isset($course['add_teachers_to_sessions_courses']) && !empty($course['add_teachers_to_sessions_courses']) ? 1 : 0;

@ -114,7 +114,7 @@ class ExtraFieldValue extends Model
// Parse params.
foreach ($params as $key => $value) {
if (substr($key, 0, 6) == 'extra_') {
if (substr($key, 0, 6) == 'extra_' || substr($key, 0, 7) == '_extra_') {
// An extra field.
$field_variable = substr($key, 6);
$extra_field_info = $extra_field->get_handler_field_info_by_field_variable($field_variable);
@ -447,7 +447,7 @@ class ExtraFieldValue extends Model
public function get_values_by_handler_and_field_id($item_id, $field_id, $transform = false)
{
$field_id = intval($field_id);
$item_id = intval($item_id);
$item_id = Database::escape_string($item_id);
$sql = "SELECT s.*, field_type FROM {$this->table} s
INNER JOIN {$this->table_handler_field} sf ON (s.field_id = sf.id)

Loading…
Cancel
Save