%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/cursos.tjamich.gob.mx/main/admin/
Upload File :
Create Path :
Current File : /home/tjamichg/cursos.tjamich.gob.mx/main/admin/user_move_stats.php

<?php

/* For licensing terms, see /license.txt */

/**
 * User move script (to move between courses and sessions).
 */
$cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
require_once api_get_path(SYS_CODE_PATH).'work/work.lib.php';

$this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script();

$em = Database::getManager();

$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')];
$debug = 0;

if (isset($_REQUEST['load_ajax'])) {
    //Checking the variable $_SESSION['combination'] that has all the
    // information of the selected course (instead of using a lots of
    // hidden variables ... )
    if (isset($_SESSION['combination']) && !empty($_SESSION['combination'])) {
        $combinations = $_SESSION['combination'];
        $combination_result = isset($combinations[$_REQUEST['unique_id']]) ? $combinations[$_REQUEST['unique_id']] : [];
        if (empty($combination_result)) {
            echo get_lang('ThereWasAnError');
        } else {
            $origin_course_code = $combination_result['course_code'];
            $origin_session_id = (int) $combination_result['session_id'];
            $new_session_id = (int) $_REQUEST['session_id'];

            if ($origin_session_id == $new_session_id) {
                echo get_lang('CantMoveToTheSameSession');
                exit;
            }
            $user_id = (int) $_REQUEST['user_id'];
            $new_course_list = SessionManager::get_course_list_by_session_id($new_session_id);

            $course_founded = false;
            foreach ($new_course_list as $course_item) {
                if ($origin_course_code == $course_item['code']) {
                    $course_founded = true;
                }
            }

            $result_message = [];
            $result_message_compare = [];
            $update_database = true;
            if (isset($_REQUEST['view_stat']) && $_REQUEST['view_stat'] == 1) {
                $update_database = false;
            }

            // Check if the same course exist in the session destination
            if ($course_founded) {
                $result = SessionManager::get_users_by_session($new_session_id);
                if (empty($result) || !in_array($user_id, array_keys($result))) {
                    if ($debug) {
                        echo 'User added to the session';
                    }
                    // Registering user to the new session
                    if ($update_database) {
                        SessionManager::subscribeUsersToSession(
                            $new_session_id,
                            [$user_id],
                            false,
                            false
                        );
                    }
                }

                $course_info = api_get_course_info($origin_course_code);
                // Check if the user is registered in the session otherwise we will add it
                Tracking::processUserDataMove(
                    $user_id,
                    $course_info,
                    $origin_session_id,
                    $new_session_id,
                    $update_database,
                    $debug
                );
            } else {
                echo get_lang('CourseDoesNotExistInThisSession');
            }
        }
    } else {
        echo get_lang('ThereWasAnError');
    }
    exit;
}
$htmlHeadXtra[] = '<script>
   function moveto (unique_id, user_id) {
        var session_id = document.getElementById(unique_id).options[document.getElementById(unique_id).selectedIndex].value;
         $.ajax({
            contentType: "application/x-www-form-urlencoded",
            beforeSend: function(myObject) {
            $("div#reponse_"+unique_id).html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
            type: "POST",
            url: "user_move_stats.php",
            data: "load_ajax=1"+"&unique_id="+unique_id+"&user_id="+user_id+"&session_id="+session_id,
            success: function(datos) {
             $("div#reponse_"+unique_id).html(datos);
            }
        });
    }
    function view_stat (unique_id, user_id) {
        var session_id = document.getElementById(unique_id).options[document.getElementById(unique_id).selectedIndex].value;

         $.ajax({
            contentType: "application/x-www-form-urlencoded",
            beforeSend: function(myObject) {
            $("div#reponse_"+unique_id).html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
            type: "POST",
            url: "user_move_stats.php",
            data: "load_ajax=1&view_stat=1"+"&unique_id="+unique_id+"&user_id="+user_id+"&session_id="+session_id,
            success: function(datos) {
             $("div#reponse_"+unique_id).html(datos);
            }
        });
    }
    </script>';

function get_courses_list_by_user_id_based_in_exercises($user_id)
{
    $TABLETRACK_EXERCICES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
    $user_id = (int) $user_id;
    $sql = "SELECT DISTINCT exe_user_id, c_id, session_id
            FROM $TABLETRACK_EXERCICES
            WHERE exe_user_id = $user_id
            ORDER by exe_user_id, c_id ASC";

    $res = Database::query($sql);
    $course_list = [];
    while ($row = Database::fetch_array($res, 'ASSOC')) {
        $course_list[] = $row;
    }

    return $course_list;
}

Display::addFlash(
    Display::return_message(
        get_lang('CompareUserResultsBetweenCoursesAndCoursesInASession'),
        'normal',
        false
    )
);
Display::display_header(get_lang('MoveUserStats'));
echo '<div class="actions">';
echo '<a href="../admin/index.php">'.
    Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'), '', ICON_SIZE_MEDIUM).'</a>';
echo '</div>';

// Some pagination
$page = 1;
if (isset($_GET['page']) && !empty($_GET['page'])) {
    $page = intval($_GET['page']);
}
$default = 20;
$count = UserManager::get_number_of_users(null, api_get_current_access_url_id());
$nro_pages = round($count / $default) + 1;
$begin = $default * ($page - 1);
$end = $default * $page;
$navigation = "$begin - $end  / $count<br />";

if ($page > 1) {
    $navigation .= '<a href="'.api_get_self().'?page='.($page - 1).'">'.get_lang('Previous').'</a>';
} else {
    $navigation .= get_lang('Previous');
}
$navigation .= '&nbsp;';
$page++;
if ($page < $nro_pages) {
    $navigation .= '<a href="'.api_get_self().'?page='.$page.'">'.get_lang('Next').'</a>';
} else {
    $navigation .= get_lang('Next');
}

echo $navigation;
$user_list = UserManager::get_user_list([], [], $begin, $default);
$session_list = SessionManager::get_sessions_list([], ['name']);
$options = '';
$options .= '<option value="0">--'.get_lang('SelectASession').'--</option>';
foreach ($session_list as $session_data) {
    $my_session_list[$session_data['id']] = $session_data['name'];
    $options .= '<option value="'.$session_data['id'].'">'.$session_data['name'].'</option>';
}

$combinations = [];

if (!empty($user_list)) {
    foreach ($user_list as $user) {
        $user_id = $user['user_id'];
        $name = $user['firstname'].' '.$user['lastname'];
        $course_list_registered = CourseManager::get_courses_list_by_user_id(
            $user_id,
            true,
            false
        );

        $new_course_list = [];
        foreach ($course_list_registered as $course_reg) {
            if (empty($course_reg['session_id'])) {
                $course_reg['session_id'] = 0;
            }
            // Recover the code for historical reasons. If it can be proven
            // that the code can be safely replaced by c_id in the following
            // PHP code, feel free to do so
            $courseInfo = api_get_course_info_by_id($course_reg['real_id']);
            $course_reg['code'] = $courseInfo['code'];
            $new_course_list[] = $course_reg['code'].'_'.$course_reg['session_id'];
        }

        $course_list = get_courses_list_by_user_id_based_in_exercises($user_id);

        if (is_array($course_list) && !empty($course_list)) {
            foreach ($course_list as $my_course) {
                $courseInfo = api_get_course_info_by_id($my_course['c_id']);
                $my_course['real_id'] = $my_course['c_id'];
                $key = $courseInfo['code'].'_'.$my_course['session_id'];

                if (!in_array($key, $new_course_list)) {
                    $my_course['not_registered'] = 1;
                    $course_list_registered[] = $my_course;
                }
            }
        }

        foreach ($course_list_registered as &$course) {
            $courseInfo = api_get_course_info_by_id($course['real_id']);
            $course['name'] = $courseInfo['name'];
        }

        $course_list = $course_list_registered;

        echo '<div class="table-responsive">';
        echo '<table class="table table-hover table-striped data_table">';
        echo '<thead>';
        echo '<tr>';
        echo '<th style="text-align:left;" colspan="'.count($course_list).'">';
        echo "<h3>$name #$user_id </h3>  ";
        echo '</th>';
        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        if (!empty($course_list)) {
            echo '<tr>';
            foreach ($course_list as $course) {
                echo '<td>';
                if (isset($course['session_id']) && !empty($course['session_id'])) {
                    echo '<b>'.get_lang('SessionName').'</b> '.$my_session_list[$course['session_id']].'<br />';
                }
                echo $course['name'];
                echo ' ('.$course['code'].') ';
                if (isset($course['not_registered']) && !empty($course['not_registered'])) {
                    echo ' <i>'.get_lang('UserNotRegistered').'</i>';
                }
                echo '</td>';
            }
            echo '</tr>';
            echo '<tr>';

            foreach ($course_list as $course) {
                $course_code = $course['code'];
                if (empty($course['session_id'])) {
                    $session_id = 0;
                } else {
                    $session_id = $course['session_id'];
                }
                echo '<td>';
                echo get_lang('MoveTo');
                echo '<br />';
                $unique_id = uniqid();
                $combinations[$unique_id] = ['course_code' => $course_code, 'session_id' => $session_id];

                echo '<select id="'.$unique_id.'" name="'.$unique_id.'" class="form-control">';
                echo $options;
                echo '</select>';
                echo '<br />';
                echo '<button type="submit" class="btn btn-success" onclick="view_stat(\''.$unique_id.'\', \''.$user_id.'\');"> '.get_lang('CompareStats').'</button>';
                echo '<button type="submit" class="btn btn-success" onclick="moveto(\''.$unique_id.'\', \''.$user_id.'\');"> '.get_lang('Move').'</button>';
                echo '<div id ="reponse_'.$unique_id.'"></div>';
                echo '</td>';
            }
            echo '</tr>';
        } else {
            echo '<td>';
            echo get_lang('NoCoursesForThisUser');
            echo '</td>';
        }
        echo '</tbody>';
        echo '</table>';
        echo '</div>';
    }
}
echo $navigation;
$_SESSION['combination'] = $combinations;

Zerion Mini Shell 1.0