Add description to session - refs BT#9049

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent a78325f921
commit c94787cda4
  1. 17
      main/admin/resume_session.php
  2. 19
      main/admin/session_add.php
  3. 34
      main/admin/session_edit.php
  4. 8
      main/auth/courses_controller.php
  5. 2
      main/inc/ajax/session.ajax.php
  6. 2
      main/inc/lib/auth.lib.php
  7. 2
      main/inc/lib/course.lib.php
  8. 7
      main/inc/lib/display.lib.php
  9. 136
      main/inc/lib/sessionmanager.lib.php
  10. 3
      main/inc/lib/userportal.lib.php
  11. 2
      main/install/db_main.sql
  12. 3
      main/install/migrate-db-1.9.0-1.10.0-pre.sql
  13. 6
      main/session/index.php
  14. 2
      main/template/default/auth/sessions_catalog.tpl

@ -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 '</td></tr>';
}
?>
<?php
$sessionDescription = SessionManager::getSessionDescription($sessionId);
if (!empty($sessionDescription)) {
?>
<tr>
<td><?php echo get_lang('Description'); ?></td>
<td><?php echo $sessionDescription ?></td>
<td><?php echo $session['description'] ?></td>
</tr>
<tr>
<td><?php echo get_lang('ShowDescription'); ?></td>
<td><?php echo $session['show_description'] == 1 ? get_lang('Yes') : get_lang('No') ?></td>
</tr>
<?php
}
?>
</table>
<br />

@ -112,6 +112,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$end_limit = $_POST['end_limit'];
$start_limit = $_POST['start_limit'];
$duration = isset($_POST['duration']) ? $_POST['duration'] : null;
$description = isset($_POST['description']) ? $_POST['description'] : null;
$showDescription = isset($_POST['show_description']) ? 1 : 0;
if (empty($end_limit) && empty($start_limit)) {
$nolimit = 1;
@ -134,14 +136,15 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$id_session_category,
$id_visibility,
$start_limit,
false,
$end_limit,
$duration
$duration,
$description,
$showDescription
);
if ($return == strval(intval($return))) {
SessionManager::saveSessionDescription($return, $_POST['description']);
// integer => no error on session creation
// integer => no error on session creation
header('Location: add_courses_to_session.php?id_session='.$return.'&add=true&msg=');
exit();
}
@ -237,6 +240,14 @@ $Categories = SessionManager::get_all_session_category();
<?php echo $fckEditor->CreateHtml(); ?>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input id="show_description" type="checkbox" name="show_description" />
<?php echo get_lang('ShowDescription') ?>
</label>
</div>
</div>
<div class="control-group">
<label class="control-label">
<?php echo get_lang('SessionCategory') ?>

@ -102,9 +102,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
);
if ($return == strval(intval($return))) {
SessionManager::saveSessionDescription($return, $_POST['description']);
header('Location: resume_session.php?id_session='.$return);
header('Location: resume_session.php?id_session='.$return);
exit();
}
}
@ -168,10 +166,18 @@ if (!empty($return)) {
<div class="controls">
<?php $fckEditor = new FCKeditor('description'); ?>
<?php $fckEditor->ToolbarSet = 'TrainingDescription'; ?>
<?php $fckEditor->Value = SessionManager::getSessionDescription($id) ; ?>
<?php $fckEditor->Value = $infos['description'] ; ?>
<?php echo $fckEditor->CreateHtml(); ?>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input id="show_description" type="checkbox" name="show_description" <?php echo $showDescriptionChecked ?> />
<?php echo get_lang('ShowDescription') ?>
</label>
</div>
</div>
<div class="control-group">
<label class="control-label">
<?php echo get_lang('SessionCategory') ?>
@ -378,26 +384,6 @@ if (!empty($return)) {
</div>
</div>
<?php if (array_key_exists('show_description', $infos)) { ?>
<div class="control-group">
<div class="controls">
<?php echo get_lang('Description') ?> <br />
<textarea name="description"><?php echo $infos['description']; ?></textarea>
</div>
</div>
<div class="control-group">
<div class="controls">
<label>
<input id="show_description" type="checkbox" name="show_description" <?php echo $showDescriptionChecked ?> />
<?php echo get_lang('ShowDescription') ?>
</label>
</div>
</div>
<?php } ?>
<?php
if (SessionManager::durationPerUserIsEnabled()) {
if (empty($infos['duration'])) {

@ -557,15 +557,9 @@ class CoursesController
'icon' => $this->getSessionIcon($session['name']),
'date' => SessionManager::getSessionFormattedDate($session),
'subscribe_button' => $this->getRegisterInSessionButton($session['name']),
'hasDescription' => false
'showDescription' => $session['show_description']
);
$sessionDescription = SessionManager::getSessionDescription($session['id']);
if (!empty($sessionDescription)) {
$sessionsBlock['hasDescription'] = true;
}
$sessionsBlocks[] = $sessionsBlock;
}

@ -115,7 +115,7 @@ switch ($action) {
<div class="home-course-intro">
<div class="page-course">
<div class="page-course-intro">
<p><?php echo SessionManager::getSessionDescription($sessionId) ?></p>
<p><?php echo $sessionInfo['show_description'] == 1 ? $sessionInfo['description'] : get_lang('None') ?></p>
</div>
</div>
</div>

@ -607,7 +607,7 @@ class Auth
$userId = api_get_user_id();
$limitFilter = getLimitFilterFromArray($limit);
$sql = "SELECT s.id, s.name, s.nbr_courses, s.nbr_users, s.date_start, s.date_end, u.lastname, u.firstname, u.username "
$sql = "SELECT s.id, s.name, s.nbr_courses, s.nbr_users, s.date_start, s.date_end, u.lastname, u.firstname, u.username, description, show_description "
. "FROM $sessionTable AS s "
. "INNER JOIN $userTable AS u "
. "ON s.id_coach = u.user_id "

@ -3561,7 +3561,7 @@ class CourseManager
$html .= '<div class="span6 '.$param_class.'">';
$html .='<h3>'.$params['title'].$notifications.'</h3> ';
if (isset($params['description'])) {
if (isset($params['show_description'], $params['description']) && $params['show_description'] == 1) {
$html .= '<p>'.$params['description'].'</p>';
}
if (!empty($params['subtitle'])) {

@ -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;
}

@ -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

@ -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);

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

@ -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;

@ -354,14 +354,12 @@ if (!empty($start) && !empty($end)) {
echo Display::tag('h1', $session_info['name']);
echo $dates.'<br />';
$sessionDescription = SessionManager::getSessionDescription($session_id);
if (!empty($sessionDescription)) {
if ($session_info['show_description'] == 1) {
?>
<div class="home-course-intro">
<div class="page-course">
<div class="page-course-intro">
<p><?php echo $sessionDescription; ?></p>
<p><?php echo $session_info['description']; ?></p>
</div>
</div>
</div>

@ -136,7 +136,7 @@
</div>
</div>
<div class="span3">
{% if session.hasDescription %}
{% if session.showDescription %}
<div class="buttom-subscribed">
<a class="ajax btn btn-large btn-info" href="{{ _p.web_ajax }}session.ajax.php?a=get_description&session={{ session.id }}">{{ 'Description' | get_lang }}</a>
</div>

Loading…
Cancel
Save