Adding import user to a course by a CSV file see the resume session page #4747

skala
Julio Montoya 13 years ago
parent d507d8961e
commit a7ac08d2ef
  1. 61
      main/admin/resume_session.php
  2. 110
      main/admin/session_user_import.php
  3. BIN
      main/img/icons/22/import_csv.png
  4. 1
      main/inc/lib/message.lib.php
  5. 28
      main/inc/lib/sessionmanager.lib.php

@ -35,8 +35,6 @@ $tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY)
$table_access_url_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$sql = 'SELECT name, nbr_courses, nbr_users, nbr_classes, DATE_FORMAT(date_start,"%d-%m-%Y") as date_start, DATE_FORMAT(date_end,"%d-%m-%Y") as date_end, lastname, firstname, username, session_admin_id, nb_days_access_before_beginning, nb_days_access_after_end, session_category_id, visibility
FROM '.$tbl_session.' LEFT JOIN '.$tbl_user.' ON id_coach = user_id
WHERE '.$tbl_session.'.id='.$id_session;
@ -117,17 +115,13 @@ if (!empty($message)) {
}
echo Display::page_header(Display::return_icon('session.png', get_lang('Session')).' '.$session['name']);
$url = Display::url(Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL), "session_edit.php?page=resume_session.php&id=$id_session");
echo Display::page_subheader(get_lang('GeneralProperties').$url);
?>
<!-- General properties -->
<table class="data_table" width="100%">
<tr>
<th align="center" colspan="2">
<?php echo get_lang('GeneralProperties'); ?>
<a href="session_edit.php?page=resume_session.php&id=<?php echo $id_session; ?>">
<?php Display::display_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL); ?>
</a>
</th>
</tr>
<table class="data_table">
<tr>
<td><?php echo get_lang('GeneralCoach'); ?> :</td>
<td><?php echo api_get_person_name($session['firstname'], $session['lastname']).' ('.$session['username'].')' ?></td>
@ -205,16 +199,16 @@ if ($multiple_url_is_on) {
?>
</table>
<br />
<?php
$url = Display::url(Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL), "add_courses_to_session.php?page=resume_session.php&id_session=$id_session");
echo Display::page_subheader(get_lang('CourseList').$url);
?>
<!--List of courses -->
<table class="data_table" width="100%">
<tr>
<th align="center" colspan="4">
<?php echo get_lang('CourseList'); ?>
<a href="add_courses_to_session.php?page=resume_session.php&id_session=<?php echo $id_session; ?>">
<?php Display::display_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL); ?>
</a>
</th>
</tr>
<table class="data_table">
<tr>
<th width="35%"><?php echo get_lang('CourseTitle'); ?></th>
<th width="30%"><?php echo get_lang('CourseCoach'); ?></th>
@ -276,6 +270,7 @@ if ($session['nbr_courses'] == 0){
<td>
<a href="'.api_get_path(WEB_COURSE_PATH).$course['code'].'/?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('Course')).'</a>
<a href="session_course_user_list.php?id_session='.$id_session.'&course_code='.$course['code'].'">'.Display::return_icon('user.png', get_lang('Edit'), '', ICON_SIZE_SMALL).'</a>
<a href="'.api_get_path(WEB_CODE_PATH).'/user/user_import.php?action=import&cidReq='.$course['code'].'&id_session='.$id_session.'">'.Display::return_icon('import_csv.png', get_lang('ImportUsersToACourse'), null, ICON_SIZE_SMALL).'</a>
<a href="../tracking/courseLog.php?id_session='.$id_session.'&cidReq='.$course['code'].$orig_param.'&hide_course_breadcrumb=1">'.Display::return_icon('statistics.gif', get_lang('Tracking')).'</a>&nbsp;
<a href="session_course_edit.php?id_session='.$id_session.'&page=resume_session.php&course_code='.$course['code'].''.$orig_param.'">'.Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_SMALL).'</a>
<a href="'.api_get_self().'?id_session='.$id_session.'&action=delete&idChecked[]='.$course['code'].'" onclick="javascript:if(!confirm(\''.get_lang('ConfirmYourChoice').'\')) return false;">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>
@ -286,14 +281,24 @@ if ($session['nbr_courses'] == 0){
?>
</table>
<br />
<!--List of courses -->
<table class="data_table" width="100%">
<?php
$url = Display::url(Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL), "add_users_to_session.php?page=resume_session.php&id_session=$id_session");
$url .= Display::url(Display::return_icon('import_csv.png', get_lang('ImportUsers'), array(), ICON_SIZE_SMALL), "session_user_import.php?id_session=$id_session");
echo Display::page_subheader(get_lang('UserList').$url);
?>
<!--List of users -->
<table class="data_table">
<tr>
<th align="center" colspan="4">
<?php echo get_lang('UserList'); ?>
<a href="add_users_to_session.php?page=resume_session.php&id_session=<?php echo $id_session; ?>">
<?php Display::display_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL); ?>
</a>
<th>
<?php echo get_lang('User'); ?>
</th>
<th>
<?php echo get_lang('Actions'); ?>
</th>
</tr>
<?php
@ -341,7 +346,7 @@ if ($session['nbr_users']==0) {
}
echo '<tr>
<td width="90%">
<b>'.$user_link.'</b>
'.$user_link.'
</td>
<td>
<a href="../mySpace/myStudents.php?student='.$user['user_id'].''.$orig_param.'">'.Display::return_icon('statistics.gif', get_lang('Reporting')).'</a>&nbsp;

@ -0,0 +1,110 @@
<?php
/* For licensing terms, see /license.txt */
/**
* @package chamilo.admin
*/
$language_file = array('admin', 'registration');
$cidReset = true;
require '../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true);
require_once api_get_path(LIBRARY_PATH).'fileManage.lib.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
$form_sent = 0;
$error_message = ''; // Avoid conflict with the global variable $error_msg (array type) in add_course.conf.php.
if (isset($_GET['action']) && $_GET['action'] == 'show_message') {
$error_message = Security::remove_XSS($_GET['message']);
}
$tool_name = get_lang('ImportUsers');
$session_id = isset($_GET['id_session']) ? intval($_GET['id_session']) : null;
if (empty($session_id)) {
api_not_allowed(true);
}
$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=".$session_id,"name" => get_lang('SessionOverview'));
set_time_limit(0);
if ($_POST['formSent']) {
if (isset($_FILES['import_file']['tmp_name']) && !empty($_FILES['import_file']['tmp_name'])) {
$form_sent = $_POST['formSent'];
$send_mail = $_POST['sendMail'] ? 1 : 0;
// CSV
$users = Import::csv_to_array($_FILES['import_file']['tmp_name']);
$user_list = array();
foreach ($users as $user) {
$user_list[] = $user['id'];
}
if (!empty($user_list)) {
SessionManager::suscribe_users_to_session($session_id, $user_list, null, false, $send_mail);
foreach ($user_list as & $user_id) {
$user_info = api_get_user_info($user_id);
$user_id = $user_info['complete_name'];
}
$error_message = get_lang('UsersAdded').' : '.implode(', ', $user_list);
}
} else {
$error_message = get_lang('NoInputFile');
}
}
// Display the header.
Display::display_header($tool_name);
if (count($inserted_in_course) > 1) {
$msg = get_lang('SeveralCoursesSubscribedToSessionBecauseOfSameVisualCode').': ';
foreach ($inserted_in_course as $code => $title) {
$msg .= ' '.$title.' ('.$title.'),';
}
$msg = substr($msg, 0, -1);
Display::display_warning_message($msg);
}
echo '<div class="actions">';
echo '<a href="resume_session.php?id_session='.$session_id.'">'.Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'',ICON_SIZE_MEDIUM).'</a>';
echo '</div>';
if (!empty($error_message)) {
Display::display_normal_message($error_message, false);
}
$form = new FormValidator('import_sessions', 'post', api_get_self().'?id_session='.$session_id, null, array('enctype' => 'multipart/form-data'));
$form->addElement('hidden', 'formSent', 1);
$form->addElement('file', 'import_file', get_lang('ImportCSVFileLocation'));
$form->addElement('checkbox', 'sendMail', null, get_lang('SendMailToUsers'));
$form->addElement('button', 'submit', get_lang('Import'));
$defaults = array('sendMail' => 'true');
$form->setDefaults($defaults);
$form->display();
?>
<font color="gray">
<p><?php echo get_lang('CSVMustLookLike'); ?> :</p>
<blockquote>
<pre>
id;
06;
30;
</pre>
</blockquote>
<?php
/* FOOTER */
Display::display_footer();

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -221,6 +221,7 @@ class MessageManager
$parent_id = intval($parent_id);
$edit_message_id = intval($edit_message_id);
$topic_id = intval($topic_id);
if (empty($sender_id)) {
$user_sender_id = api_get_user_id();
} else {

@ -589,7 +589,6 @@ class SessionManager {
}
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$id_session' ";
$result = Database::query($sql);
$existingUsers = array();
while($row = Database::fetch_array($result)) {
@ -603,29 +602,26 @@ class SessionManager {
$course_list[] = $row['course_code'];
}
if ($send_email) {
//global $_configuration;
//sending emails only
if (is_array($user_list) && count($user_list)>0) {
foreach($user_list as $enreg_user) {
if (!in_array($enreg_user,$existingUsers )) {
//send email
$emailbody = '';
$emailheaders = '';
$user_info = UserManager::get_user_info_by_id($enreg_user);
$firstname = $user_info['firstname'];
$lastname = $user_info['lastname'];
$email = $user_info['email'];
$emailto = '"'.$firstname.' '.$lastname.'" <'.$email.'>';
$emailsubject = '['.get_setting('siteName').'] '.get_lang('YourReg').' '.get_setting('siteName');
$emailheaders = 'From: '.get_setting('administratorName').' '.get_setting('administratorSurname').' <'.get_setting('emailAdministrator').">\n";
foreach ($user_list as $user_id) {
if (!in_array($user_id, $existingUsers)) {
$subject = '['.get_setting('siteName').'] '.get_lang('YourReg').' '.get_setting('siteName');
$user_info = api_get_user_info($user_id);
$content = get_lang('Dear')." ".stripslashes($user_info['complete_name']).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'), $session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". api_get_path(WEB_PATH) ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
MessageManager::send_message($user_id, $subject, $content, array(), array(), null, null, null, null, null);
/*$emailheaders = 'From: '.get_setting('administratorName').' '.get_setting('administratorSurname').' <'.get_setting('emailAdministrator').">\n";
$emailheaders .= 'Reply-To: '.get_setting('emailAdministrator');
$emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'), $session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". api_get_path(WEB_PATH) ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
@api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders);
@api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders);*/
}
}

Loading…
Cancel
Save