diff --git a/main/admin/session_edit.php b/main/admin/session_edit.php index 9ecc33abcb..537da48985 100644 --- a/main/admin/session_edit.php +++ b/main/admin/session_edit.php @@ -26,25 +26,22 @@ $id = intval($_GET['id']); SessionManager::protect_session_edit($id); -$sql = "SELECT name,date_start,date_end,id_coach, session_admin_id, nb_days_access_before_beginning, nb_days_access_after_end, session_category_id, visibility - FROM $tbl_session WHERE id = $id"; -$result = Database::query($sql); - -if (!$infos = Database::fetch_array($result)) { - header('Location: session_list.php'); - exit(); -} +$infos = SessionManager::fetch($id); $id_coach = $infos['id_coach']; - $tool_name = get_lang('EditSession'); $interbreadcrumb[] = array('url' => 'index.php',"name" => get_lang('PlatformAdmin')); $interbreadcrumb[] = array('url' => "session_list.php","name" => get_lang('SessionList')); $interbreadcrumb[] = array('url' => "resume_session.php?id_session=".$id,"name" => get_lang('SessionOverview')); -list($year_start,$month_start,$day_start) = explode('-',$infos['date_start']); -list($year_end,$month_end,$day_end) = explode('-',$infos['date_end']); +list($year_start,$month_start,$day_start) = explode('-', $infos['date_start']); +list($year_end,$month_end,$day_end) = explode('-', $infos['date_end']); + +$showDescriptionChecked = null; +if (isset($infos['show_description']) && !empty($infos['show_description'])) { + $showDescriptionChecked = 'checked'; +} $end_year_disabled = $end_month_disabled = $end_day_disabled = ''; @@ -65,6 +62,9 @@ if (isset($_POST['formSent']) && $_POST['formSent']) { $id_session_category = $_POST['session_category']; $id_visibility = $_POST['session_visibility']; + $description = isset($_POST['description']) ? $_POST['description'] : null; + $showDescription = isset($_POST['show_description']) ? 1 : 0; + $end_limit = $_POST['end_limit']; $start_limit = $_POST['start_limit']; @@ -74,7 +74,27 @@ if (isset($_POST['formSent']) && $_POST['formSent']) { $nolimit = null; } - $return = SessionManager::edit_session($id,$name,$year_start,$month_start,$day_start,$year_end,$month_end,$day_end,$nb_days_acess_before,$nb_days_acess_after,$nolimit, $id_coach, $id_session_category,$id_visibility,$start_limit,$end_limit); + $return = SessionManager::edit_session( + $id, + $name, + $year_start, + $month_start, + $day_start, + $year_end, + $month_end, + $day_end, + $nb_days_acess_before, + $nb_days_acess_after, + $nolimit, + $id_coach, + $id_session_category, + $id_visibility, + $start_limit, + $end_limit, + $description, + $showDescription + ); + if ($return == strval(intval($return))) { header('Location: resume_session.php?id_session='.$return); exit(); @@ -337,6 +357,26 @@ if (!empty($return)) { + + +
+
+
+ +
+
+ +
+
+ +
+
+ + +
diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php index 3eac1e95ce..682c9862ab 100644 --- a/main/inc/lib/display.lib.php +++ b/main/inc/lib/display.lib.php @@ -1226,7 +1226,8 @@ class Display { * @param int Session ID * @return array Empty array or session array ['title'=>'...','category'=>'','dates'=>'...','coach'=>'...','active'=>true/false,'session_category_id'=>int] */ - public static function get_session_title_box($session_id) { + public static function get_session_title_box($session_id) + { global $nosession; if (!$nosession) { @@ -1287,9 +1288,12 @@ class Display { $session['active'] = $active; $session['session_category_id'] = $session_info['session_category_id']; - if (isset($session_info['description'])) { - $session['description'] = $session_info['description']; + if (array_key_exists('show_description', $session_info)) { + if (!empty($session_info['show_description'])) { + $session['description'] = $session_info['description']; + } } + $output = $session; } return $output; diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index cf09ba5fde..6dd3740147 100644 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -396,9 +396,28 @@ class SessionManager * @return $id; * The parameter id is a primary key **/ - public static function edit_session ($id,$name,$year_start,$month_start,$day_start,$year_end,$month_end,$day_end,$nb_days_acess_before,$nb_days_acess_after,$nolimit,$id_coach, $id_session_category, $id_visibility, $start_limit = true, $end_limit = true) { - global $_user; - $name=trim(stripslashes($name)); + public static function edit_session ( + $id, + $name, + $year_start, + $month_start, + $day_start, + $year_end, + $month_end, + $day_end, + $nb_days_acess_before, + $nb_days_acess_after, + $nolimit, + $id_coach, + $id_session_category, + $id_visibility, + $start_limit = true, + $end_limit = true, + $description = null, + $showDescription = null + ) + { + $name = trim(stripslashes($name)); $year_start=intval($year_start); $month_start=intval($month_start); $day_start=intval($day_start); @@ -411,9 +430,7 @@ class SessionManager $id_session_category = intval($id_session_category); $id_visibility = intval($id_visibility); - $tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); - $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); if (empty($nolimit)) { $date_start = "$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start); @@ -453,17 +470,32 @@ class SessionManager $msg=get_lang('StartDateShouldBeBeforeEndDate'); return $msg; } else { + $rs = Database::query("SELECT id FROM $tbl_session WHERE name='".Database::escape_string($name)."'"); $exists = false; while ($row = Database::fetch_array($rs)) { - if($row['id']!=$id) + if ($row['id'] != $id) $exists = true; } + if ($exists) { - $msg=get_lang('SessionNameAlreadyExists'); + $msg = get_lang('SessionNameAlreadyExists'); return $msg; } else { - $sql="UPDATE $tbl_session " . + + $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).'" ,'; + } + + $sql = "UPDATE $tbl_session " . "SET name='".Database::escape_string($name)."', date_start='".$date_start."', date_end='".$date_end."', @@ -471,6 +503,8 @@ class SessionManager 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 visibility= ".$id_visibility." WHERE id='$id'"; Database::query($sql); @@ -1905,7 +1939,7 @@ class SessionManager $date_end = $enreg['DateEnd']; $visibility = isset($enreg['Visibility']) ? $enreg['Visibility'] : $sessionVisibility; $session_category_id = isset($enreg['SessionCategory']) ? $enreg['SessionCategory'] : null; - $sessionDescription = isset($enreg['SessionDescription']) ? $enreg['SessionDescription'] : null; + $sessionDescription = isset($enreg['SessionDescription']) ? $enreg['SessionDescription'] : null; $extraSessionParameters = null; if (!empty($sessionDescription)) {