You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							102 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							102 lines
						
					
					
						
							2.8 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/* For licensing terms, see /license.txt */
 | 
						|
use Chamilo\CoreBundle\Component\Utils\ActionIcon;
 | 
						|
 | 
						|
$cidReset = true;
 | 
						|
 | 
						|
require_once __DIR__.'/../inc/global.inc.php';
 | 
						|
 | 
						|
set_time_limit(0);
 | 
						|
 | 
						|
$this_section = SECTION_PLATFORM_ADMIN;
 | 
						|
 | 
						|
$session_id = isset($_GET['id_session']) ? intval($_GET['id_session']) : null;
 | 
						|
$session = api_get_session_entity($session_id);
 | 
						|
SessionManager::protectSession($session);
 | 
						|
 | 
						|
$form_sent = 0;
 | 
						|
$tool_name = get_lang('Import users');
 | 
						|
 | 
						|
//$interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('Administration'));
 | 
						|
$interbreadcrumb[] = ['url' => "session_list.php", "name" => get_lang('Session list')];
 | 
						|
$interbreadcrumb[] = [
 | 
						|
    'url' => "resume_session.php?id_session=".$session_id,
 | 
						|
    "name" => get_lang('Session overview'),
 | 
						|
];
 | 
						|
 | 
						|
if (isset($_POST['formSent']) && $_POST['formSent']) {
 | 
						|
    if (isset($_FILES['import_file']['tmp_name']) &&
 | 
						|
        !empty($_FILES['import_file']['tmp_name'])
 | 
						|
    ) {
 | 
						|
        $form_sent = $_POST['formSent'];
 | 
						|
 | 
						|
        // CSV
 | 
						|
        $users = Import::csvToArray($_FILES['import_file']['tmp_name']);
 | 
						|
        $user_list = [];
 | 
						|
        foreach ($users as $user_data) {
 | 
						|
            $username = $user_data['username'];
 | 
						|
            $user_id = UserManager::get_user_id_from_username($username);
 | 
						|
            if ($user_id) {
 | 
						|
                $user_list[] = $user_id;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        if (!empty($user_list)) {
 | 
						|
            SessionManager::subscribeUsersToSession(
 | 
						|
                $session_id,
 | 
						|
                $user_list,
 | 
						|
                null,
 | 
						|
                false
 | 
						|
            );
 | 
						|
 | 
						|
            foreach ($user_list as &$user_id) {
 | 
						|
                $user_info = api_get_user_info($user_id);
 | 
						|
                $user_id = $user_info['complete_name'];
 | 
						|
            }
 | 
						|
            $error_message = get_lang('Users added').' : '.implode(', ', $user_list);
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        $error_message = get_lang('No file was sent');
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
// Display the header.
 | 
						|
Display::display_header($tool_name);
 | 
						|
 | 
						|
echo '<div class="actions">';
 | 
						|
echo '<a href="resume_session.php?id_session='.$session_id.'">'.
 | 
						|
    Display::getMdiIcon(ActionIcon::BACK, 'ch-tool-icon', null, ICON_SIZE_MEDIUM, get_lang('Back to').' '.get_lang('Administration')).
 | 
						|
    '</a>';
 | 
						|
echo '</div>';
 | 
						|
 | 
						|
if (!empty($error_message)) {
 | 
						|
    echo Display::return_message($error_message, 'normal', false);
 | 
						|
}
 | 
						|
 | 
						|
$form = new FormValidator(
 | 
						|
    'import_sessions',
 | 
						|
    'post',
 | 
						|
    api_get_self().'?id_session='.$session_id,
 | 
						|
    null,
 | 
						|
    ['enctype' => 'multipart/form-data']
 | 
						|
);
 | 
						|
$form->addElement('hidden', 'formSent', 1);
 | 
						|
$form->addElement('file', 'import_file', get_lang('CSV file import location'));
 | 
						|
$form->addButtonImport(get_lang('Import'));
 | 
						|
 | 
						|
$form->display();
 | 
						|
 | 
						|
$content = '<p>'.get_lang('The CSV file must look like this').':</p>
 | 
						|
<blockquote>
 | 
						|
<pre>
 | 
						|
username;
 | 
						|
admin;
 | 
						|
teacher;
 | 
						|
jmontoya;
 | 
						|
</pre>
 | 
						|
</blockquote>';
 | 
						|
 | 
						|
echo Display::prose($content);
 | 
						|
 | 
						|
Display::display_footer();
 | 
						|
 |