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)) {