123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456 |
- <?php
- /* For licensing terms, see /license.txt */
- require_once '../inc/global.inc.php';
- require_once 'userInfoLib.php';
- $allow = api_get_configuration_value('extra');
- if (empty($allow)) {
- exit;
- }
- $TABLECALHORAIRE = Database :: get_course_table(cal_horaire);
- $htmlHeadXtra[] = '<script>
- function show_image(image,width,height) {
- width = parseInt(width) + 20;
- height = parseInt(height) + 20;
- window_x = window.open(image,\'windowX\',\'width=\'+ width + \', height=\'+ height + \'\');
- }
- </script>';
- $editMainUserInfo = Security::remove_XSS($_REQUEST['editMainUserInfo']);
- $uInfo = $editMainUserInfo;
- $this_section = SECTION_COURSES;
- $nameTools = get_lang('Users');
- api_protect_course_script(true);
- $tool_info = api_get_tool_information_by_name(TOOL_USER);
- if (api_is_anonymous()) {
- api_not_allowed(true);
- }
- //prepare variables used in userInfoLib.php functions
- $TBL_USERINFO_DEF = Database:: get_course_table(TABLE_USER_INFO_DEF);
- $TBL_USERINFO_CONTENT = Database:: get_course_table(TABLE_USER_INFO_CONTENT);
- if ($tool_info['visibility'] == 1) {
- $interbreadcrumb[] = ['url' => 'user.php', 'name' => get_lang('Users')];
- }
- if ($origin != 'learnpath') { //so we are not in learnpath tool
- Display :: display_header($nameTools, "User");
- $origin = Security::remove_XSS($_GET['origin']);
- } else {
- ?> <link rel="stylesheet" type="text/css" href="<?php echo api_get_path(WEB_CODE_PATH); ?>css/default.css" /> <?php
- }
- $currentCourse = api_get_course_id();
- $current_session_id = api_get_session_id();
- /*
- * data found in settings are :
- * $uid
- * $isAdmin
- * $isAdminOfCourse
- * $_configuration['main_database']
- * $currentCourseID
- */
- $userIdViewed = Security::remove_XSS($_REQUEST['uInfo']);
- /**
- * Connection layer between Chamilo and the current script.
- */
- $courseCode = api_get_course_id();
- $tbl_coursUser = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
- $userIdViewer = api_get_user_id(); // id fo the user currently online
- $allowedToEditContent = ($userIdViewer == $userIdViewed) || $is_platformAdmin;
- $allowedToEditDef = api_is_allowed_to_edit(null, true);
- $is_allowedToTrack = api_is_allowed_to_edit(null, true);
- $displayMode = "viewContentList";
- $removeDef = Security::remove_XSS($_GET['removeDef']);
- $editDef = Security::remove_XSS($_GET['editDef']);
- $moveUpDef = Security::remove_XSS($_GET['moveUpDef']);
- $moveDownDef = Security::remove_XSS($_GET['moveDownDef']);
- if ($allowedToEditDef) {
- if (!empty($_POST['submitDef'])) {
- if (!empty($_POST['id'])) {
- edit_cat_def($_POST['id'], $_POST['title'], $_POST['comment'], $_POST['nbline']);
- } else {
- create_cat_def($_POST['title'], $_POST['comment'], $_POST['nbline']);
- }
- $displayMode = "viewDefList";
- } elseif (!empty($_GET['removeDef'])) {
- remove_cat_def($_GET['removeDef'], true);
- $displayMode = "viewDefList";
- } elseif (!empty($_GET['editDef'])) {
- $displayMode = "viewDefEdit";
- } elseif (!empty($_POST['addDef'])) {
- $displayMode = "viewDefEdit";
- } elseif (!empty($_GET['moveUpDef'])) {
- move_cat_rank($_GET['moveUpDef'], "up");
- $displayMode = "viewDefList";
- } elseif (!empty($_GET['moveDownDef'])) {
- move_cat_rank($_GET['moveDownDef'], "down");
- $displayMode = "viewDefList";
- } elseif (!empty($_POST['viewDefList'])) {
- $displayMode = "viewDefList";
- } elseif (!empty($_GET['editMainUserInfo'])) {
- $userIdViewed = strval(intval($_GET['editMainUserInfo']));
- $displayMode = "viewMainInfoEdit";
- } elseif (!empty($_REQUEST['submitMainUserInfo'])) {
- $userIdViewed = strval(intval($_REQUEST['submitMainUserInfo']));
- if ($current_session_id) {
- } else {
- if (!empty($_POST['promoteCourseAdmin']) && $_POST['promoteCourseAdmin']) {
- $userProperties['status'] = 1;
- } else {
- $userProperties['status'] = 5;
- }
- if (!empty($_POST['promoteTutor']) && $_POST['promoteTutor']) {
- $userProperties['tutor'] = 1;
- } else {
- $userProperties['tutor'] = 0;
- }
- $userhoraire_name = $_POST['hor_name'];
- $course_id = $_course['real_id'];
- update_user_course_properties($userIdViewed, $courseCode, $userProperties, $userhoraire_name, $course_id);
- }
- $displayMode = "viewContentList";
- }
- }
- if ($allowedToEditContent) {
- if (isset($_POST['submitContent'])) {
- if ($_POST['cntId']) {
- // submit a content change
- edit_cat_content($_POST['catId'], $userIdViewed, $_POST['content'], $_SERVER['REMOTE_ADDR']);
- } else {
- // submit a totally new content
- fill_new_cat_content($_POST['catId'], $userIdViewed, $_POST['content'], $_SERVER['REMOTE_ADDR']);
- }
- $displayMode = "viewContentList";
- } elseif (!empty($_GET['editContent'])) {
- $displayMode = "viewContentEdit";
- $userIdViewed = $userIdViewed;
- }
- }
- if (api_is_allowed_to_edit(null, true)) {
- echo '<div class="actions">';
- if ($origin == 'users') {
- echo '<a href="user.php?'.api_get_cidreq().'&origin='.$origin.'">'.
- Display::return_icon('back.png', get_lang('Back to users list'), '', ICON_SIZE_MEDIUM).'</a>';
- } else {
- echo '<a href="javascript:history.back(1)">'.
- Display::return_icon('back.png', get_lang('Back'), '', ICON_SIZE_MEDIUM).'</a>';
- }
- if (!is_numeric($_GET['editMainUserInfo'])) {
- if (api_get_setting('allow_user_course_subscription_by_course_admin') == 'true') {
- echo '<a href="userInfo.php?'.api_get_cidreq(
- ).'&origin='.$origin.'&editMainUserInfo='.$userIdViewed.'">'.
- Display::return_icon('edit.png', get_lang('Edit this user'), '', ICON_SIZE_MEDIUM).get_lang(
- 'Edit this user'
- ).'</a>';
- }
- } else {
- if (api_get_setting('allow_user_course_subscription_by_course_admin') == 'true') {
- echo '<a href="userInfo.php?'.api_get_cidreq().'&origin='.$origin.'&uInfo='.$userIdViewed.'">'.
- Display::return_icon(
- 'user.png',
- get_lang('View this user'),
- '',
- ICON_SIZE_MEDIUM
- ).get_lang('View this user').'</a>';
- }
- }
- echo '<a href="../mySpace/myStudents.php?'.api_get_cidreq().'&origin=user_course&student='.$userIdViewed.'&details=true&course='.$_course['id'].'">'.Display::return_icon('statistics.png', get_lang('Reporting for this user'), '', ICON_SIZE_MEDIUM).get_lang('Reporting for this user').'</a>';
- echo '</div>';
- } else {
- if ($tool_info['visibility'] == 1) {
- echo '<div class="actions">';
- if ($origin == 'users') {
- echo '<a href="user.php?'.api_get_cidreq().'&origin='.$origin.'">'.
- Display::return_icon(
- 'back.png',
- get_lang('Back to users list'),
- '',
- ICON_SIZE_MEDIUM
- ).'</a>';
- } else {
- echo '<a href="javascript:history.back(1)">'.Display::return_icon(
- 'back.png',
- get_lang('Back'),
- '',
- ICON_SIZE_MEDIUM
- ).'</a>';
- }
- echo '</div>';
- }
- }
- // get information about user id viewed
- $user_info_viewed = api_get_user_info($userIdViewed);
- $is_session_course_coach = UserManager::is_session_course_coach(
- $userIdViewed,
- $_course['sysCode'],
- $current_session_id
- );
- if ($displayMode == "viewDefEdit") {
- /* CATEGORIES DEFINITIONS : EDIT */
- $catToEdit = get_cat_def($_GET['editDef']);
- $edit_heading_form = new FormValidator('edit_heading_form');
- $edit_heading_form->addElement('hidden', 'id');
- $edit_heading_form->add_textfield('title', get_lang('Title'));
- $edit_heading_form->addElement('textarea', 'comment', get_lang('Comment'), ['cols' => 60, 'rows' => 4]);
- $possible_line_nrs[1] = '1 '.get_lang('Line');
- $possible_line_nrs[3] = '3 '.get_lang('lines');
- $possible_line_nrs[5] = '5 '.get_lang('lines');
- $possible_line_nrs[10] = '10 '.get_lang('lines');
- $possible_line_nrs[15] = '15 '.get_lang('lines');
- $edit_heading_form->addElement('select', 'nbline', get_lang('Line Number'), $possible_line_nrs);
- $edit_heading_form->addElement('submit', 'submitDef', get_lang('Validate'));
- $edit_heading_form->setDefaults($catToEdit);
- $edit_heading_form->display();
- } elseif ($displayMode == "viewDefList") {
- $catList = get_cat_def_list();
- if ($catList) {
- foreach ($catList as $thisCat) {
- // displays Title and comments
- echo "<p>", "<b>".htmlize($thisCat['title'])."</b><br>\n", "<i>".htmlize($thisCat['comment'])."</i>\n", "</p>";
- // displays lines
- echo "<blockquote>\n", "<font color=\"gray\">\n";
- for ($i = 1; $i <= $thisCat['nbline']; $i++) {
- echo "<br>__________________________________________\n";
- }
- echo "</font>\n", "</blockquote>\n";
- // displays commands
- echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&removeDef=", $thisCat['catId'], "\">", "<img src=\"../img/delete.gif\" border=\"0\" alt=\"".get_lang('Remove')."\" onclick=\"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang('Please confirm your choice'), ENT_QUOTES, $charset))."')) return false;\">", "</a>", "<a href=\"".api_get_self()."?".api_get_cidreq()."&editDef=", $thisCat['catId'], "\">", "<img src=\"../img/edit.gif\" border=\"0\" alt=\"".get_lang('Edit')."\" />", "</a>", "<a href=\"".api_get_self()."?".api_get_cidreq()."&moveUpDef=", $thisCat['catId'], "\">", "<img src=\"../img/up.gif\" border=\"0\" alt=\"".get_lang('Move up')."\">", "</a>", "<a href=\"".api_get_self()."?".api_get_cidreq()."&moveDownDef=", $thisCat['catId'], "\">", "<img src=\"../img/down.gif\" border=\"0\" alt=\"".get_lang('Move down')."\">", "</a>\n";
- } // end for each
- } // end if ($catList)
- echo "<center>\n",
- "<form method=\"post\" action=\"".api_get_self()."\">",
- "<input type=\"submit\" name=\"addDef\" class=\"plus\" value=\"".get_lang('Add new heading')."\" />",
- "</form>\n",
- "<center>\n";
- } elseif ($displayMode == 'viewContentEdit') {
- /* CATEGORIES CONTENTS : EDIT */
- $catToEdit = get_cat_content($userIdViewed, $_GET['editContent']);
- $content_heading_form = new FormValidator('content_heading_form');
- $content_heading_form->addElement('hidden', 'cntId');
- $content_heading_form->addElement('hidden', 'catId');
- $content_heading_form->addElement('hidden', 'uInfo');
- $content_heading_form->addElement('static', null, $catToEdit['title'], htmlize($catToEdit['comment']));
- if ($catToEdit['nbline'] == 1) {
- $content_heading_form->addElement('text', 'content', null, ['size' => 80]);
- } else {
- $content_heading_form->addElement(
- 'textarea',
- 'content',
- null,
- ['cols' => 60, 'rows' => $catToEdit['nbline']]
- );
- }
- $content_heading_form->addElement('submit', 'submitContent', get_lang('Validate'));
- $defaults = $catToEdit;
- $defaults['cntId'] = $catToEdit['contentId'];
- $defaults['uInfo'] = $userIdViewed;
- $content_heading_form->setDefaults($defaults);
- $content_heading_form->display();
- } elseif ($displayMode == "viewMainInfoEdit") {
- $mainUserInfo = api_get_user_info($userIdViewed);
- if ($mainUserInfo) {
- ($mainUserInfo['status'] == COURSEMANAGER) ? $courseAdminChecked = "checked" : $courseAdminChecked = "";
- $image_array = UserManager::get_user_picture_path_by_id($userIdViewed, 'web', false, true);
- // get the path,width and height from original picture
- $big_image = $image_array['dir'].'big_'.$image_array['file'];
- $big_image_size = api_getimagesize($big_image);
- $big_image_width = $big_image_size['width'];
- $big_image_height = $big_image_size['height'];
- $url_big_image = $big_image.'?rnd='.time();
- if ($image_array['file'] == 'unknown.jpg') {
- echo '<img src="'.$image_array['dir'].$image_array['file'].'" border="1">';
- } else {
- echo '<input type="image" src="'.$image_array['dir'].$image_array['file'].'" onclick="return show_image(\''.$url_big_image.'\',\''.$big_image_width.'\',\''.$big_image_height.'\');"/>';
- }
- echo "<form action=\"".api_get_self()."\" method=\"post\">\n",
- "<input type=\"hidden\" name=\"submitMainUserInfo\" value=\"$userIdViewed\" />\n",
- "<table width=\"80%\" border=\"0\">",
- "<tr align=\"center\" bgcolor=\"#E6E6E6\">\n",
- "<td align=\"left\">", get_lang('Name'), "</td>\n",
- "<td width=\"100px\" align=\"left\">", get_lang('Schedule'), "</td>\n";
- echo "</tr>\n",
- "<tr align=\"center\">",
- "<td align=\"left\"><b>", htmlize(api_get_person_name($mainUserInfo['firstName'], $mainUserInfo['lastName'])), "</b></td>\n",
- "<td align=\"left\"><b>", $mainUserInfo['official_code'], "</td>";
- //récupérer horaire de l'élève
- $course_id = $_course['real_id']; ?>
- <SELECT NAME='hor_name'>
- <OPTION VALUE='<?php echo $mainUserInfo['official_code']; ?>'><?php echo get_lang('select_calendar_student'); ?></OPTION>
- <?php
- $sql = "SELECT distinct name FROM $TABLECALHORAIRE
- where c_id = $course_id ";
- $result2 = Database::query($sql);
- while ($row = Database::fetch_array($result2)) {
- $horaire_name = $row["name"]; ?>
- <OPTION VALUE='<?php echo $horaire_name; ?>'><?php echo "$horaire_name "; ?></OPTION>
- <?php
- } ?>
- </SELECT>
- <?php
- echo'<p></p> ';
- if (!($is_courseAdmin && $_user['user_id'] == $userIdViewed)) {
- } else {
- echo "<td>", get_lang('Teacher'), "</td>\n";
- }
- echo "<td><button class=\"save\" type=\"submit\" name=\"submit\">".get_lang('Save changes')."</button></td>\n", "</tr>", "</table>", "</form>\n";
- if (api_get_setting('show_email_addresses') == 'true') {
- echo "<p>".Display:: encrypted_mailto_link($mainUserInfo['email'], $mainUserInfo['email'])."</p>";
- }
- if (api_get_setting('extended_profile') == 'true') {
- if (!empty($mainUserInfo['competences'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My competences').'</strong></div><div>'.$mainUserInfo['competences'].'</div>';
- }
- if (!empty($mainUserInfo['diplomas'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My diplomas').'</strong></div><div>'.$mainUserInfo['diplomas'].'</div>';
- }
- if (!empty($mainUserInfo['teach'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('What I am able to teach').'</strong></div><div>'.$mainUserInfo['teach'].'</div>';
- }
- if (!empty($mainUserInfo['openarea'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My personal open area').'</strong></div><div>'.$mainUserInfo['openarea'].'</div>';
- }
- if (!empty($mainUserInfo['competences'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My productions').'</strong></div><div>'.UserManager::build_production_list($mainUserInfo['user_id']).'</div>';
- }
- }
- } else {
- echo Display::return_message(get_lang('This learner is subscribed in this training through a training session. You cannot edit his information'));
- }
- } elseif ($displayMode == "viewContentList") {
- // default display
- $virtual_course_code = $_GET["virtual_course"];
- if (isset($virtual_course_code)) {
- $courseCode = $virtual_course_code;
- $allowedToEditDef = false;
- }
- $mainUserInfo = api_get_user_info($userIdViewed);
- if ($mainUserInfo) {
- $image_array = UserManager::get_user_picture_path_by_id($userIdViewed, 'web', false, true);
- // get the path,width and height from original picture
- $big_image = $image_array['dir'].'big_'.$image_array['file'];
- $big_image_size = api_getimagesize($big_image);
- $big_image_width = $big_image_size['width'];
- $big_image_height = $big_image_size['height'];
- $url_big_image = $big_image.'?rnd='.time();
- if ($image_array['file'] == 'unknown.jpg') {
- echo '<img src="'.$image_array['dir'].$image_array['file'].'" border="1">';
- } else {
- echo '<input type="image" src="'.$image_array['dir'].$image_array['file'].'" onclick="return show_image(\''.$url_big_image.'\',\''.$big_image_width.'\',\''.$big_image_height.'\');"/>';
- }
- // is the user online?
- $online = '';
- if (user_is_online($userIdViewed)) {
- $online = Display::return_icon('online.gif', get_lang('Online'), ['style' => 'with="8"; height="8"']);
- }
- // DISPLAY TABLE HEADING
- if ($origin == 'learnpath') {
- $allowedToEditDef = false;
- $is_allowedToTrack = false;
- }
- echo "<table width=\"80%\" border=\"0\">",
- "<tr align=\"center\" bgcolor=\"#E6E6E6\">\n",
- "<td align=\"left\">".get_lang('Name')."</td>\n",
- "<td width=\"20%\" align=\"left\">".get_lang('Description')."</td>\n",
- "<td width=\"100px\" align=\"left\">", get_lang('Code'), "</td>\n";
- echo "</tr>\n",
- "<tr align=\"center\">\n",
- "<td align=\"left\"><b>".$online.' '.htmlize(api_get_person_name($mainUserInfo['firstName'], $mainUserInfo['lastName']))."</b></td>\n",
- "<td align=\"left\"><b>", $mainUserInfo['official_code'], "</td>";
- // DISPLAY TABLE CONTENT
- if ($current_session_id) {
- if ($user_info_viewed['status'] == COURSEMANAGER) {
- echo "<td> - </td>\n";
- }
- } else {
- if ($user_info_viewed['status'] == STUDENT) {
- echo "<td> - </td>\n";
- } else {
- echo "<td> - </td>\n";
- }
- }
- echo "</tr></table>";
- if (api_get_setting("show_email_addresses") == "true") {
- echo "<p>".Display::encrypted_mailto_link($mainUserInfo['email'], $mainUserInfo['email'])."</p>";
- }
- if (api_get_setting('extended_profile') == 'true') {
- if (!empty($mainUserInfo['competences'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My competences').'</strong></div><div>'.$mainUserInfo['competences'].'</div>';
- }
- if (!empty($mainUserInfo['diplomas'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My diplomas').'</strong></div><div>'.$mainUserInfo['diplomas'].'</div>';
- }
- if (!empty($mainUserInfo['teach'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('What I am able to teach').'</strong></div><div>'.$mainUserInfo['teach'].'</div>';
- }
- if (!empty($mainUserInfo['openarea'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My personal open area').'</strong></div><div>'.$mainUserInfo['openarea'].'</div>';
- }
- if (!empty($mainUserInfo['competences'])) {
- echo '<div style="margin-top:10px;" class="actions-message"><strong>'.get_lang('My productions').'</strong></div><div>'.UserManager::build_production_list($mainUserInfo['user_id']).'</div>';
- }
- }
- } else {
- Display::return_message(get_lang('This learner is subscribed in this training through a training session. You cannot edit his information'), 'normal');
- }
- if (api_get_setting('allow_user_headings') == 'true' && $allowedToEditDef) {
- // only course administrators see this line
- echo "<div align=right>",
- "<form method=\"post\" action=\"".api_get_self()."\">",
- get_lang('Teachers only')," : ",
- "<input type=\"submit\" class=\"save\" name=\"viewDefList\" value=\"".get_lang('Define Headings')."\" />",
- "</form>",
- "<hr noshade size=\"1\" style=\"color:#99CCFF\">",
- "</div>\n";
- }
- $catList = get_course_user_info($userIdViewed);
- if ($catList) {
- foreach ($catList as $thisCat) {
- // Category title
- echo "<p><b>", $thisCat['title'], "</b></p>\n";
- // Category content
- echo "<blockquote>\n";
- if ($thisCat['content']) {
- echo htmlize($thisCat['content'])."\n";
- } else {
- echo "....";
- }
- // Edit command
- if ($allowedToEditContent) {
- echo "<br /><br />\n",
- "<a href=\"".api_get_self()."?".api_get_cidreq(
- )."&editContent=", $thisCat['catId'], "&uInfo=", $userIdViewed, "\">",
- "<img src=\"../img/edit.gif\" border=\"0\" alt=\"edit\">",
- "</a>\n";
- }
- echo "</blockquote>\n";
- }
- }
- }
- Display::display_footer();
|