diff --git a/main/admin/resume_session.php b/main/admin/resume_session.php index b633f4ff99..4d045cda21 100755 --- a/main/admin/resume_session.php +++ b/main/admin/resume_session.php @@ -51,7 +51,8 @@ $sql = 'SELECT nb_days_access_before_beginning, nb_days_access_after_end, session_category_id, - visibility + visibility, + show_description, description FROM '.$tbl_session.' LEFT JOIN '.$tbl_user.' ON id_coach = user_id @@ -243,19 +244,15 @@ if (SessionManager::durationPerUserIsEnabled()) { echo ''; } -?> -
'.$params['description'].'
'; } if (!empty($params['subtitle'])) { diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php index a230e518f2..eb3caf8f54 100755 --- a/main/inc/lib/display.lib.php +++ b/main/inc/lib/display.lib.php @@ -1562,11 +1562,8 @@ class Display $session['active'] = $active; $session['session_category_id'] = $session_info['session_category_id']; - if (array_key_exists('show_description', $session_info)) { - if (!empty($session_info['show_description'])) { - $session['description'] = $session_info['description']; - } - } + $session['description'] = $session_info['description']; + $session['show_description'] = $session_info['show_description']; $output = $session; } diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index b986b81317..47abc7cd61 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -63,6 +63,9 @@ class SessionManager * @param string Start limit = true if the start date has to be considered * @param string End limit = true if the end date has to be considered * @param string $fix_name + * @param string $duration + * @param string $description Optional. The session description + * @param int $showDescription Optional. Whether show the session description * @todo use an array to replace all this parameters or use the model.lib.php ... * @return mixed Session ID on success, error message otherwise * */ @@ -84,7 +87,8 @@ class SessionManager $end_limit = true, $fix_name = false, $duration = null, - $showDescription = null + $description = null, + $showDescription = 0 ) { global $_configuration; @@ -181,10 +185,20 @@ class SessionManager } if ($ready_to_create) { - $sql = "INSERT INTO $tbl_session(name,date_start,date_end,id_coach,session_admin_id, nb_days_access_before_beginning, nb_days_access_after_end, session_category_id,visibility) - VALUES('" . $name . "','$date_start','$date_end','$id_coach'," . api_get_user_id() . "," . $nb_days_acess_before . ", " . $nb_days_acess_after . ", " . $id_session_category . ", " . $id_visibility . ")"; - Database::query($sql); - $session_id = Database::insert_id(); + $values = array( + 'name' => $name, + 'date_start' => $date_start, + 'date_end' => $date_end, + 'id_coach' => $id_coach, + 'session_admin_id' => api_get_user_id(), + 'nb_days_access_before_beginning' => $nb_days_acess_before, + 'nb_days_access_after_end' => $nb_days_acess_after, + 'session_category_id' => $id_session_category, + 'visibility' => $id_visibility, + 'description' => Database::escape_string($description), + 'show_description' => intval($showDescription) + ); + $session_id = Database::insert($tbl_session, $values); if (self::durationPerUserIsEnabled()) { $duration = intval($duration); @@ -204,14 +218,6 @@ class SessionManager Database::query($sql); } - if (!is_null($showDescription)) { - $showDescription = intval($showDescription); - $sql = "UPDATE $tbl_session - SET show_description = '$showDescription' - WHERE id = $session_id"; - Database::query($sql); - } - if (!empty($session_id)) { /* Sends a message to the user_id = 1 @@ -1361,7 +1367,7 @@ class SessionManager $start_limit = true, $end_limit = true, $description = null, - $showDescription = null, + $showDescription = 0, $duration = null ) { $name = trim(stripslashes($name)); @@ -1430,22 +1436,9 @@ class SessionManager $msg = get_lang('SessionNameAlreadyExists'); return $msg; } else { + $values = array(); - $sessionInfo = SessionManager::fetch($id); - - $descriptionCondition = null; - if (array_key_exists('description', $sessionInfo)) { - $descriptionCondition = ' description = "' . Database::escape_string($description) . '" ,'; - } - - $showDescriptionCondition = null; - if (array_key_exists('show_description', $sessionInfo)) { - $showDescriptionCondition = ' show_description = "' . Database::escape_string($showDescription) . '" ,'; - } - - $durationCondition = null; if (self::durationPerUserIsEnabled()) { - if (empty($duration)) { $duration = null; } else { @@ -1454,24 +1447,24 @@ class SessionManager $duration = intval($duration); } - $durationCondition = ' duration = "' . $duration . '" ,'; + $values['duration'] = $duration; } - $sql = "UPDATE $tbl_session SET - name='" . Database::escape_string($name) . "', - date_start='" . $date_start . "', - date_end='" . $date_end . "', - id_coach='" . $id_coach . "', - nb_days_access_before_beginning = " . $nb_days_acess_before . ", - nb_days_access_after_end = " . $nb_days_acess_after . ", - session_category_id = " . $id_session_category . " , - $descriptionCondition - $showDescriptionCondition - $durationCondition - visibility= " . $id_visibility . " - WHERE id='$id'"; + $values['name'] = Database::escape_string($name); + $values['date_start'] = $date_start; + $values['date_end'] = $date_end; + $values['id_coach'] = $id_coach; + $values['nb_days_access_before_beginning'] = $nb_days_acess_before; + $values['nb_days_access_after_end'] = $nb_days_acess_after; + $values['session_category_id'] = $id_session_category; + $values['description'] = Database::escape_string($description); + $values['show_description'] = intval($showDescription); + $values['visibility'] = $id_visibility; + + Database::update($tbl_session, $values, array( + 'id = ?' => $id + )); - Database::query($sql); return $id; } } @@ -5400,63 +5393,6 @@ class SessionManager return false; } - /** - * Get the session description - * @param int $sessionId The session id - * @return string The session description. Otherwise return null - */ - public static function getSessionDescription($sessionId) - { - $sessionId = intval($sessionId); - - $fieldValue = new ExtraFieldValue('session'); - $description = $fieldValue->get_values_by_handler_and_field_variable($sessionId, 'description', false); - - return $description !== false ? trim($description['field_value']) : ''; - } - - /** - * Whether the session has not description extra field insert a new record. Otherwise update the record - * @param int $sessionId The session id - * @param string $description The session description - * @return void - */ - public static function saveSessionDescription($sessionId, $description) - { - $sessionId = intval($sessionId); - $fieldValuesTable = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES); - - $fieldValue = new ExtraFieldValue('session'); - $descriptionValue = $fieldValue->get_values_by_handler_and_field_variable($sessionId, 'description', false); - - if ($descriptionValue === false) { - $sessionField = new ExtraField('session'); - $fieldInfo = $sessionField->get_handler_field_info_by_field_variable('description'); - - if (empty($fieldInfo)) { - return; - } - - $attributes = array( - 'session_id' => $sessionId, - 'field_id' => $fieldInfo['id'], - 'field_value' => $description, - 'tms' => api_get_utc_datetime() - ); - - Database::insert($fieldValuesTable, $attributes); - } else { - $attributes = array( - 'field_value' => $description, - 'tms' => api_get_utc_datetime() - ); - - Database::update($fieldValuesTable, $attributes, array( - 'id = ?' => $descriptionValue['id'] - )); - } - } - /** * Get the list of course coaches * @return array The list diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index 0ae7ddc257..07f87b22d7 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -1146,7 +1146,8 @@ class IndexManager // $params['extra'] .= $html_courses_session; } - $params['description'] = isset($session_box['description']) ? $session_box['description'] : null; + $params['description'] = $session_box['description']; + $params['show_description'] = $session_box['show_description']; $parentInfo = CourseManager::course_item_html($params, true); diff --git a/main/install/db_main.sql b/main/install/db_main.sql index c8c3919724..7314197ff7 100755 --- a/main/install/db_main.sql +++ b/main/install/db_main.sql @@ -469,6 +469,8 @@ CREATE TABLE IF NOT EXISTS session ( visibility int NOT NULL default 1, session_category_id int NOT NULL, promotion_id INT NOT NULL, + description TEXT DEFAULT NULL, + show_description TINYINT UNSIGNED DEFAULT 0, PRIMARY KEY (id), INDEX (session_admin_id), UNIQUE KEY name (name) diff --git a/main/install/migrate-db-1.9.0-1.10.0-pre.sql b/main/install/migrate-db-1.9.0-1.10.0-pre.sql index c97d3db7ba..4cadb68cd5 100644 --- a/main/install/migrate-db-1.9.0-1.10.0-pre.sql +++ b/main/install/migrate-db-1.9.0-1.10.0-pre.sql @@ -17,7 +17,8 @@ ALTER TABLE skill_rel_user ADD COLUMN course_id INT NOT NULL DEFAULT 0 AFTER id; ALTER TABLE skill_rel_user ADD COLUMN session_id INT NOT NULL DEFAULT 0 AFTER course_id; ALTER TABLE skill_rel_user ADD INDEX idx_select_cs (course_id, session_id); -INSERT INTO session_field (field_type, field_variable, field_display_text, field_default_value) values (2, 'description','Description', NULL); +ALTER TABLE session ADD COLUMN description TEXT DEFAULT NULL; +ALTER TABLE session ADD COLUMN show_description TINYINT UNSIGNED DEFAULT 0 AFTER description; diff --git a/main/session/index.php b/main/session/index.php index 27a02a8ed6..f8f456b4bb 100755 --- a/main/session/index.php +++ b/main/session/index.php @@ -354,14 +354,12 @@ if (!empty($start) && !empty($end)) { echo Display::tag('h1', $session_info['name']); echo $dates.'