if ($courseLine['registration'] == 'open' && !empty($courseLine['registrationKey'])) { $regIcon = 'key'; } else { $regIcon = $courseLine['registration']; } // Course Settings $courseDataList[$numLine]['cmdSetting'] = '<a href="' . get_path('clarolineRepositoryWeb') . 'course/settings.php?adminContext=1' . '&cidReq=' . $courseLine['sysCode'] . $addToURL . '&cfrom=clist' . (!is_null($courseLine['sourceCourseId']) ? '&courseType=session' : '') . '">' . '<img src="' . get_icon_url('settings') . '" alt="" />' . ' ' . '<img src="' . get_icon_url($imgVisibilityStatus[$courseLine['visibility']]) . '" alt="" /> ' . '<img src="' . get_icon_url($imgAccessStatus[$courseLine['access']]) . '" alt="" /> ' . '<img src="' . get_icon_url($imgRegistrationStatus[$regIcon]) . '" alt="" />' . '</a>'; // Course Action Delete $courseDataList[$numLine]['cmdDelete'] = '<a href="' . claro_htmlspecialchars($_SERVER['PHP_SELF'] . '?cmd=exDelete&delCode=' . $courseLine['sysCode'] . $addToURL) . '" ' . 'onclick="return ADMIN.confirmationDel(\'' . clean_str_for_javascript($courseLine['intitule']) . '\');">' . '<img src="' . get_icon_url('delete') . '" alt="' . get_lang('Delete') . '" />' . "\n" . '</a>' . "\n"; } /** * CONFIG DATAGRID */ $sortUrlList = $myPager->get_sort_url_list($_SERVER['PHP_SELF']); $courseDataGrid = new claro_datagrid($courseDataList); $courseDataGrid->set_colTitleList(array('officialCode' => '<a href="' . $sortUrlList['officialCode'] . '">' . get_lang('Course code') . '</a>', 'intitule' => '<a href="' . $sortUrlList['intitule'] . '">' . get_lang('Course title') . '</a>', 'qty_cm' => get_lang('Course members'), 'cmdSetting' => get_lang('Course settings'), 'cmdDelete' => get_lang('Delete'))); $courseDataGrid->set_colAttributeList(array('qty_cm' => array('align' => 'right'), 'cmdSetting' => array('align' => 'center'), 'cmdDelete' => array('align' => 'center'))); $courseDataGrid->set_idLineType('none'); $courseDataGrid->set_colHead('officialCode'); $courseDataGrid->set_noRowMessage(get_lang('There is no course matching such criteria') . '<br />' . '<a href="advanced_course_search.php' . $addtoAdvanced . '">' . get_lang('Search again (advanced)') . '</a>'); // Command list $cmdList = array(); $cmdList[] = array('img' => 'courseadd', 'name' => get_lang('Create course'), 'url' => '../course/create.php?adminContext=1'); // Display $out = ''; $out .= claro_html_tool_title($nameTools, null, $cmdList); if (!empty($isSearched)) { $dialogBox->info('<b>' . get_lang('Search on') . '</b> : <small>' . $isSearched . '</small>'); } $out .= $dialogBox->render(); // DISPLAY : Search/filter panel
} } $dgDataAnalyseResult = new claro_datagrid($dataAnalyseResult); $dgDataAnalyseResult->set_idLineType('numeric'); $dgDataAnalyseResult->set_noRowMessage(get_lang('There is no category')); $dgDataAnalyseResult->set_colTitleList(array('Code' => get_lang('Code'), 'Result' => get_lang('Result'), 'Message' => get_lang('Message'))); if (0 < $errorCounter) { $analyseTreeResultMsg['error'][] = get_lang('%nb errors found', array('%nb' => $errorCounter)); } // analyse Course onwance if (false === ($courseOwnanceCheck = checkCourseOwnance())) { $courseOwnanceCheck = array(); } $dgCourseOwnanceCheck = new claro_datagrid($courseOwnanceCheck); $dgCourseOwnanceCheck->set_idLineType('numeric'); $dgCourseOwnanceCheck->set_colTitleList(array(get_lang('Course code'), get_lang('Unknow faculty'))); $view = DISP_ANALYSE; break; case 'repairTree': $repairResult = repairTree(); if ($repairResult) { $repairResultMsg['success'][] = get_lang('Categories structure is right'); } else { switch ($failure = claro_failure::get_last_failure()) { case 'node_moved': $repairResultMsg['warning'][] = get_lang('Node Moved, relaunch repair process to complete'); break; } } $view = DISP_REPAIR_RESULT; break;
} } $sortUrlList = $myPager->get_sort_url_list($_SERVER['PHP_SELF']); // Build the list of columns' titles $colTitleList = array('user_id' => '<a href="' . $sortUrlList['user_id'] . '">' . get_lang('Numero') . '</a>', 'name' => '<a href="' . $sortUrlList['name'] . '">' . get_lang('Last name') . '</a>', 'firstname' => '<a href="' . $sortUrlList['firstname'] . '">' . get_lang('First name') . '</a>', 'officialCode' => '<a href="' . $sortUrlList['officialCode'] . '">' . get_lang('Administrative code') . '</a>', 'email' => '<a href="' . $sortUrlList['email'] . '">' . get_lang('Email') . '</a>', 'isCourseCreator' => '<a href="' . $sortUrlList['isCourseCreator'] . '">' . get_lang('Status') . '</a>', 'settings' => get_lang('User settings')); if (get_conf("registrationRestrictedThroughCategories")) { $colTitleList['qty_category'] = get_lang('Categories'); } $colTitleList['qty_class'] = get_lang('Classes'); $colTitleList['qty_course'] = get_lang('Courses'); $colTitleList['delete'] = get_lang('Delete'); $colTitleList['login_as'] = get_lang('Login as'); $userDataGrid = new claro_datagrid(); $userDataGrid->set_grid($userGrid); $userDataGrid->set_colHead('name'); $userDataGrid->set_colTitleList($colTitleList); if (count($userGrid) == 0) { $userDataGrid->set_noRowMessage('<center>' . get_lang('No user to display') . "\n" . '<br />' . "\n" . '<a href="advanced_user_search.php' . $addtoAdvanced . '">' . get_lang('Search again (advanced)') . '</a></center>' . "\n"); } else { $userDataGrid->set_colAttributeList(array('user_id' => array('align' => 'center'), 'officialCode' => array('align' => 'center'), 'settings' => array('align' => 'center'), 'delete' => array('align' => 'center'), 'login_as' => array('align' => 'center'))); } //--------- // DISPLAY //--------- //PREPARE // Javascript JavascriptLanguage::getInstance()->addLangVar('Are you sure to delete %name ?'); JavascriptLoader::getInstance()->load('admin'); JavascriptLoader::getInstance()->load('admin_users'); $out = ''; // Command list
/** * PREPARE DISPLAY */ ClaroBreadCrumbs::getInstance()->prepend(get_lang('Administration'), get_path('rootAdminWeb')); $contactUidList = claro_get_uid_of_platform_contact(); $requestUidList = claro_get_uid_of_request_admin(); $notifiedUidList = claro_get_uid_of_system_notification_recipient(); foreach ($platformAdminUidList as $k => $platformAdminUid) { $userData = user_get_properties($platformAdminUid); $userDataGrid[$k]['id'] = $userData['user_id']; $userDataGrid[$k]['name'] = $userData['lastname']; $userDataGrid[$k]['firstname'] = $userData['firstname']; $userDataGrid[$k]['email'] = $userData['email']; $userDataGrid[$k]['authSource'] = $userData['authSource']; //$userDataGrid[$k]['contact_switch'] = '<input name="contactList[]" type="checkbox" value="' . $platformAdminUid . '" ' . ((bool) in_array($platformAdminUid,$contactUidList) ? 'checked="checked" />' : '>'); $userDataGrid[$k]['request_switch'] = '<input name="requestList[]" type="checkbox" value="' . $platformAdminUid . '" ' . ((bool) in_array($platformAdminUid, $requestUidList) ? 'checked="checked" /> ' : '> '); $userDataGrid[$k]['notification_switch'] = '<input name="notifiedList[]" type="checkbox" value="' . $platformAdminUid . '" ' . ((bool) in_array($platformAdminUid, $notifiedUidList) ? 'checked="checked" /> ' : '> '); } $adminDataGrid = new claro_datagrid($userDataGrid); $adminDataGrid->set_idLineType('none'); $adminDataGrid->set_colHead('name'); $adminDataGrid->set_colTitleList(array('user id' => get_lang('User id'), 'name' => get_lang('Last name'), 'firstname' => get_lang('First name'), 'email' => get_lang('Email'), 'authSource' => get_lang('Authentication source'), 'request_switch' => get_lang('Request'), 'notification_switch' => get_lang('Notify'))); $adminDataGrid->set_colAttributeList(array('request_switch' => array('align' => 'left'), 'notification_switch' => array('align' => 'left'), 'authSource' => array('align' => 'center'))); /** * DISPLAY */ $out = ''; // Display tool title $out .= claro_html_tool_title($nameTools) . claro_html_msg_list($messageList) . '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">' . "\n" . '<input type="hidden" name="cmd" value="setRecipient" />' . "\n" . $adminDataGrid->render() . '<input type="submit" value="' . get_lang('Ok') . '" /> ' . "\n" . claro_html_button($_SERVER['PHP_SELF'], get_lang('Cancel')) . "\n" . '</form>' . "\n"; $claroline->display->body->appendContent($out); echo $claroline->display->render();
$userGrid[$userKey]['authSource'] = $user['authSource']; $userGrid[$userKey]['email'] = claro_html_mailTo($user['email'], $userEmailLabel); $userGrid[$userKey]['isCourseCreator'] = $user['isCourseCreator'] ? get_lang('Course creator') : get_lang('User'); if ($user['isPlatformAdmin']) { $userGrid[$userKey]['isCourseCreator'] .= '<br /><span class="highlight">' . get_lang('Administrator') . '</span>'; } $userGrid[$userKey]['settings'] = '<a href="adminprofile.php' . '?uidToEdit=' . $user['user_id'] . '&cfrom=ulist' . $addToURL . '">' . '<img src="' . get_icon_url('usersetting') . '" alt="' . get_lang('User settings') . '" />' . '</a>'; $userGrid[$userKey]['qty_course'] = '<a href="adminusercourses.php?uidToEdit=' . $user['user_id'] . '&cfrom=ulist' . $addToURL . '">' . "\n" . get_lang('%nb course(s)', array('%nb' => $user['qty_course'])) . "\n" . '</a>' . "\n"; $userGrid[$userKey]['delete'] = '<a href="' . $_SERVER['PHP_SELF'] . '?cmd=rqDelete&user_id=' . $user['user_id'] . '&offset=' . $offset . $addToURL . '" ' . ' class="delete" id="' . $user['firstname'] . '_' . $user['name'] . '_' . $user['user_id'] . '">' . "\n" . '<img src="' . get_icon_url('deluser') . '" alt="' . get_lang('Delete') . '" />' . "\n" . '</a> ' . "\n"; } } $sortUrlList = $myPager->get_sort_url_list($_SERVER['PHP_SELF']); $userDataGrid = new claro_datagrid(); $userDataGrid->set_grid($userGrid); $userDataGrid->set_colHead('name'); $userDataGrid->set_colTitleList(array('user_id' => '<a href="' . $sortUrlList['user_id'] . '">' . get_lang('Numero') . '</a>', 'name' => '<a href="' . $sortUrlList['name'] . '">' . get_lang('Last name') . '</a>', 'firstname' => '<a href="' . $sortUrlList['firstname'] . '">' . get_lang('First name') . '</a>', 'officialCode' => '<a href="' . $sortUrlList['officialCode'] . '">' . get_lang('Administrative code') . '</a>', 'authSource' => get_lang('Authentication source'), 'email' => '<a href="' . $sortUrlList['email'] . '">' . get_lang('Email') . '</a>', 'isCourseCreator' => '<a href="' . $sortUrlList['isCourseCreator'] . '">' . get_lang('Status') . '</a>', 'settings' => get_lang('User settings'), 'qty_course' => get_lang('Courses'), 'delete' => get_lang('Delete'))); if (count($userGrid) == 0) { $userDataGrid->set_noRowMessage('<center>' . get_lang('No user to display') . "\n" . '<br />' . "\n" . '<a href="advancedUserSearch.php' . $addtoAdvanced . '">' . get_lang('Search again (advanced)') . '</a></center>' . "\n"); } else { $userDataGrid->set_colAttributeList(array('user_id' => array('align' => 'center'), 'officialCode' => array('align' => 'center'), 'settings' => array('align' => 'center'), 'delete' => array('align' => 'center'))); } //--------- // DISPLAY //--------- //PREPARE // javascript confirm pop up declaration $htmlHeadXtra[] = '<script type="text/javascript"> function confirmation (name) { if (confirm("' . clean_str_for_javascript(get_lang('Are you sure to delete')) . '" + name + "? ")) {return true;}
$levelView = -1; /*************************************************************************** * Main ***************************************************************************/ $tempView = $view; $levelView++; $out .= '<p>' . "\n"; if ('1' == $view[$levelView]) { $tempView[$levelView] = '0'; if (false === ($datagrid[$levelView] = $Cache_Lite->get($levelView))) { $sql = "SELECT DISTINCT username AS username\n , count(*) AS qty\n FROM `" . $tbl_user . "`\n GROUP BY username\n HAVING qty > 1\n ORDER BY qty DESC\n LIMIT 100"; $data = claro_sql_query_fetch_all($sql); if (!is_array($data) || 0 == sizeof($data)) { $data[] = array('-', 'qty' => '-'); } $dg->set_colTitleList(array(get_lang('Username'), get_lang('count'))); $dg->set_grid($data); $datagrid[$levelView] .= $dg->render(); $Cache_Lite->save($datagrid[$levelView], $levelView); } $out .= '-' . ' ' . '<b>' . get_lang('Accounts with same <i>Username</i>') . '</b>' . ' ' . '<small>' . '[<a href="' . $_SERVER['PHP_SELF'] . '?view=' . $tempView . '">' . get_lang('Close') . '</a>]' . '</small>' . '<br />' . "\n" . $datagrid[$levelView] . '<small>' . get_lang('Last computing') . ' ' . claro_html_localised_date(get_locale('dateTimeFormatLong') . ':%S', $Cache_Lite->lastModified()) . ', ' . get_lang('%delay ago', array('%delay' => claro_html_duration(time() - $Cache_Lite->lastModified()))) . '</small>' . '<br />' . "\n"; } else { $tempView[$levelView] = '1'; $out .= '+' . ' ' . '<a href="' . $_SERVER['PHP_SELF'] . '?view=' . $tempView . '">' . get_lang('Accounts with same <i>Username</i>') . '</a>' . "\n"; } $out .= '</p>' . "\n\n"; /*************************************************************************** * Platform access and logins ***************************************************************************/ $tempView = $view; $levelView++;
$iconUrl = get_course_access_icon($course['access']); $userCourseGrid[$courseKey]['name'] = '<img class="iconDefinitionList" src="' . $iconUrl . '" alt="" />' . '<a href="' . get_path('clarolineRepositoryWeb') . 'course/index.php?cid=' . claro_htmlspecialchars($course['sysCode']) . '">' . $course['name'] . '</a><br />' . $course['titular']; $userCourseGrid[$courseKey]['profileId'] = claro_get_profile_name($course['profileId']); if ($course['isCourseManager']) { $userCourseGrid[$courseKey]['isCourseManager'] = '<img class="qtip" src="' . get_icon_url('manager') . '" alt="' . get_lang('Course manager') . '" />'; } else { $userCourseGrid[$courseKey]['isCourseManager'] = '<img class="qtip" src="' . get_icon_url('user') . '" alt="' . get_lang('Student') . '" />'; } $userCourseGrid[$courseKey]['edit_course_user'] = '******' . $course['sysCode'] . '&uidToEdit=' . $uidToEdit . '&ccfrom=uclist">' . '<img src="' . get_icon_url('edit') . '" alt="' . get_lang('Course manager') . '" title="' . get_lang('User\'s course settings') . '" />' . '</a>'; $userCourseGrid[$courseKey]['delete'] = '<a href="' . $_SERVER['PHP_SELF'] . '?uidToEdit=' . $uidToEdit . '&cmd=unsubscribe' . $addToUrl . '&courseId=' . claro_htmlspecialchars($course['sysCode']) . '&sort=' . $pagerSortKey . '&dir=' . $pagerSortDir . '&offset=' . $offset . '"' . ' onclick="return ADMIN.confirmationUnReg(\'' . clean_str_for_javascript($userData['firstname'] . ' ' . $userData['lastname']) . '\');">' . "\n" . '<img src="' . get_icon_url('unenroll') . '" alt="' . get_lang('Delete') . '" />' . "\n" . '</a>' . "\n"; } $sortUrlList = $myPager->get_sort_url_list($_SERVER['PHP_SELF'] . '?uidToEdit=' . $uidToEdit); $userCourseDataGrid = new claro_datagrid(); $userCourseDataGrid->set_grid($userCourseGrid); // extended setting for this datagrid $userCourseDataGrid->set_colTitleList(array('officialCode' => '<a href="' . $sortUrlList['officialCode'] . '">' . get_lang('Course code') . '</a>', 'name' => '<a href="' . $sortUrlList['name'] . '">' . get_lang('Course title') . '</a>', 'profileId' => '<a href="' . $sortUrlList['profileId'] . '">' . get_lang('User profile') . '</a>', 'isCourseManager' => '<a href="' . $sortUrlList['isCourseManager'] . '">' . get_lang('Role') . '</a>', 'edit_course_user' => get_lang('Edit settings') . '</a>', 'delete' => get_lang('Unregister user'))); if (0 == count($userCourseGrid)) { $userCourseDataGrid->set_noRowMessage(get_lang('No course to display')); } else { $userCourseDataGrid->set_colAttributeList(array('officialCode' => array('align' => 'left'), 'name' => array('align' => 'left'), 'isCourseManager' => array('align' => 'center'), 'edit_course_user' => array('align' => 'center'), 'delete' => array('align' => 'center'))); } // Initialisation of global variables and used libraries ClaroBreadCrumbs::getInstance()->prepend(get_lang('Administration'), get_path('rootAdminWeb')); $nameTools = get_lang('User course list'); // Javascript confirm pop up declaration for header JavascriptLanguage::getInstance()->addLangVar('Are you sure you want to unregister %name ?'); JavascriptLanguage::getInstance()->addLangVar('Are you sure you want to unregister %name for all courses?'); JavascriptLoader::getInstance()->load('admin'); // Command list $cmdList[] = array('img' => 'usersetting', 'name' => get_lang('User settings'), 'url' => 'admin_profile.php?uidToEdit=' . $uidToEdit); $cmdList[] = array('img' => 'course', 'name' => get_lang('Enrol to a new course'), 'url' => '../auth/courses.php?cmd=rqReg&uidToEdit=' . $uidToEdit . '&category=&fromAdmin=usercourse');