diff --git a/assets/css/themes/chamilo/default.css b/assets/css/themes/chamilo/default.css index 11fa9c003e..291f5ef39b 100644 --- a/assets/css/themes/chamilo/default.css +++ b/assets/css/themes/chamilo/default.css @@ -5,6 +5,7 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Based on Bootstrap v3 */ + @font-face { font-family: 'Open Sans'; font-style: normal; @@ -33,7 +34,7 @@ body { margin: 0; font-family: 'Open Sans', sans-serif; } - + a { color: #0099FF; text-decoration: none; diff --git a/main/admin/course_add.php b/main/admin/course_add.php index 4e399f782d..71edc0db10 100755 --- a/main/admin/course_add.php +++ b/main/admin/course_add.php @@ -59,7 +59,10 @@ $form->addText( $form->applyFilter('visual_code', 'api_strtoupper'); $form->applyFilter('visual_code', 'html_filter'); -$countCategories = $courseCategoriesRepo->countAllInAccessUrl($accessUrlId); +$countCategories = $courseCategoriesRepo->countAllInAccessUrl( + $accessUrlId, + api_get_configuration_value('allow_base_course_category') +); if ($countCategories >= 100) { // Category code @@ -73,9 +76,11 @@ if ($countCategories >= 100) { ['url' => $url] ); } else { - $categories = $courseCategoriesRepo->findAllInAccessUrl($accessUrlId); + $categories = $courseCategoriesRepo->findAllInAccessUrl( + $accessUrlId, + api_get_configuration_value('allow_base_course_category') + ); $categoriesOptions = [null => get_lang('None')]; - /** @var CourseCategory $category */ foreach ($categories as $category) { $categoriesOptions[$category->getCode()] = (string) $category; diff --git a/main/admin/course_category.php b/main/admin/course_category.php index 9f3e5ae5c2..42279d891a 100755 --- a/main/admin/course_category.php +++ b/main/admin/course_category.php @@ -80,6 +80,7 @@ $interbreadcrumb[] = [ ]; Display::display_header($tool_name); +$urlId = api_get_current_access_url_id(); if ($action == 'add' || $action == 'edit') { echo '
'; @@ -168,7 +169,7 @@ if ($action == 'add' || $action == 'edit') { $form->display(); } else { // If multiple URLs and not main URL, prevent deletion and inform user - if ($action == 'delete' && api_get_multiple_access_url() && api_get_current_access_url_id() != 1) { + if ($action == 'delete' && api_get_multiple_access_url() && $urlId != 1) { echo Display::return_message(get_lang('CourseCategoriesAreGlobal'), 'warning'); } echo '
'; @@ -176,18 +177,22 @@ if ($action == 'add' || $action == 'edit') { if (!empty($parentInfo)) { $parentCode = $parentInfo['parent_id']; echo Display::url( - Display::return_icon('back.png', get_lang("Back"), '', ICON_SIZE_MEDIUM), + Display::return_icon('back.png', get_lang('Back'), '', ICON_SIZE_MEDIUM), api_get_path(WEB_CODE_PATH).'admin/course_category.php?category='.$parentCode ); } if (empty($parentInfo) || $parentInfo['auth_cat_child'] == 'TRUE') { - echo Display::url( - Display::return_icon('new_folder.png', get_lang("AddACategory"), '', ICON_SIZE_MEDIUM), + $newCategoryLink = Display::url( + Display::return_icon('new_folder.png', get_lang('AddACategory'), '', ICON_SIZE_MEDIUM), api_get_path(WEB_CODE_PATH).'admin/course_category.php?action=add&category='.Security::remove_XSS($category) ); - } + if (!empty($parentInfo) && $parentInfo['access_url_id'] != $urlId) { + $newCategoryLink = ''; + } + echo $newCategoryLink; + } echo '
'; if (!empty($parentInfo)) { echo Display::page_subheader($parentInfo['name'].' ('.$parentInfo['code'].')'); diff --git a/main/admin/course_edit.php b/main/admin/course_edit.php index e695e502da..901bb7d3cf 100755 --- a/main/admin/course_edit.php +++ b/main/admin/course_edit.php @@ -145,7 +145,10 @@ $form->addText( $form->applyFilter('visual_code', 'strtoupper'); $form->applyFilter('visual_code', 'html_filter'); -$countCategories = $courseCategoriesRepo->countAllInAccessUrl($urlId); +$countCategories = $courseCategoriesRepo->countAllInAccessUrl( + $urlId, + api_get_configuration_value('allow_base_course_category') +); if ($countCategories >= 100) { // Category code $url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=search_category'; @@ -164,7 +167,10 @@ if ($countCategories >= 100) { } } else { $courseInfo['category_code'] = $courseInfo['categoryCode']; - $categories = $courseCategoriesRepo->findAllInAccessUrl($urlId); + $categories = $courseCategoriesRepo->findAllInAccessUrl( + $urlId, + api_get_configuration_value('allow_base_course_category') + ); $categoriesOptions = [null => get_lang('None')]; /** @var CourseCategory $category */ diff --git a/main/announcements/announcements.php b/main/announcements/announcements.php index adfe0c09b4..9da55cf950 100755 --- a/main/announcements/announcements.php +++ b/main/announcements/announcements.php @@ -39,7 +39,7 @@ $allowToEdit = ( ); $sessionId = api_get_session_id(); -$drhHasAccessToSessionContent = api_get_configuration_value('drh_can_access_all_session_content'); +$drhHasAccessToSessionContent = api_drh_can_access_all_session_content(); if (!empty($sessionId) && $drhHasAccessToSessionContent) { $allowToEdit = $allowToEdit || api_is_drh(); diff --git a/main/attendance/attendance_add.php b/main/attendance/attendance_add.php index 075a724639..a559ebf711 100755 --- a/main/attendance/attendance_add.php +++ b/main/attendance/attendance_add.php @@ -65,6 +65,9 @@ if ((api_get_session_id() != 0 && Gradebook::is_active()) || api_get_session_id( ); $form->applyFilter('attendance_weight', 'html_filter'); $form->addElement('html', '
'); + + $skillList = Skill::addSkillsToForm($form, ITEM_TYPE_ATTENDANCE, 0); + $form->addElement('html', ''); } $form->addButtonCreate(get_lang('Save')); diff --git a/main/attendance/attendance_controller.php b/main/attendance/attendance_controller.php index fca024066b..26b26bf944 100755 --- a/main/attendance/attendance_controller.php +++ b/main/attendance/attendance_controller.php @@ -45,7 +45,6 @@ class AttendanceController { $attendance = new Attendance(); $data = []; - if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { if (!empty($_POST['title'])) { $check = Security::check_token(); @@ -62,10 +61,15 @@ class AttendanceController $link_to_gradebook = true; } $attendance->category_id = isset($_POST['category_id']) ? $_POST['category_id'] : 0; - $last_id = $attendance->attendance_add($link_to_gradebook); + $attendanceId = $attendance->attendance_add($link_to_gradebook); + + if ($attendanceId) { + $form = new FormValidator('attendance_add'); + Skill::saveSkills($form, ITEM_TYPE_ATTENDANCE, $attendanceId); + } Security::clear_token(); } - header('Location: index.php?action=calendar_add&attendance_id='.$last_id.'&'.api_get_cidreq()); + header('Location: index.php?action=calendar_add&attendance_id='.$attendanceId.'&'.api_get_cidreq()); exit; } else { $data['error'] = true; @@ -119,8 +123,13 @@ class AttendanceController $link_to_gradebook = true; } $attendance->attendance_edit($attendance_id, $link_to_gradebook); + + $form = new FormValidator('attendance_edit'); + Skill::saveSkills($form, ITEM_TYPE_ATTENDANCE, $attendance_id); + Display::addFlash(Display::return_message(get_lang('Updated'))); + Security::clear_token(); - header('location:index.php?action=attendance_list&'.api_get_cidreq()); + header('Location:index.php?action=attendance_list&'.api_get_cidreq()); exit; } } else { @@ -167,6 +176,7 @@ class AttendanceController $attendance = new Attendance(); if (!empty($attendance_id)) { $affected_rows = $attendance->attendance_delete($attendance_id); + Skill::deleteSkillsFromItem($attendance_id, ITEM_TYPE_ATTENDANCE); } if ($affected_rows) { diff --git a/main/attendance/attendance_edit.php b/main/attendance/attendance_edit.php index 587469054c..9cde9f1286 100755 --- a/main/attendance/attendance_edit.php +++ b/main/attendance/attendance_edit.php @@ -44,8 +44,8 @@ $form->addHtmlEditor( ] ); -// Adavanced Parameters - +// Advanced Parameters +$skillList = []; if (Gradebook::is_active()) { if (!empty($attendance_qualify_title) || !empty($attendance_weight)) { $form->addButtonAdvancedSettings('id_qualify'); @@ -81,6 +81,9 @@ if (Gradebook::is_active()) { ); $form->applyFilter('attendance_weight', 'html_filter'); $form->addElement('html', ''); + + $skillList = Skill::addSkillsToForm($form, ITEM_TYPE_ATTENDANCE, $attendance_id); + $form->addElement('html', ''); } $form->addButtonUpdate(get_lang('Save')); @@ -90,6 +93,7 @@ $default['title'] = Security::remove_XSS($title); $default['description'] = Security::remove_XSS($description, STUDENT); $default['attendance_qualify_title'] = $attendance_qualify_title; $default['attendance_weight'] = $attendance_weight; +$default['skills'] = array_keys($skillList); $link_info = GradebookUtils::isResourceInCourseGradebook( api_get_course_id(), diff --git a/main/attendance/index.php b/main/attendance/index.php index 7aac20afe7..8c4c996ef1 100755 --- a/main/attendance/index.php +++ b/main/attendance/index.php @@ -247,6 +247,7 @@ switch ($action) { case 'attendance_delete': if ($allowToEdit) { $attendanceController->attendance_delete($attendance_id); + Display::addFlash(Display::return_message(get_lang('Deleted'))); } else { api_not_allowed(true); } diff --git a/main/auth/courses.php b/main/auth/courses.php index 6154de4b93..b2be4fbc71 100755 --- a/main/auth/courses.php +++ b/main/auth/courses.php @@ -4,7 +4,7 @@ use Chamilo\CoreBundle\Entity\SequenceResource; /** -* Template (front controller in MVC pattern) used for distpaching +* Template (front controller in MVC pattern) used for dispatching * to the controllers depend on the current action * @author Christian Fasanando - Beeznest * @package chamilo.auth diff --git a/main/auth/courses_categories.php b/main/auth/courses_categories.php index 0be62aba92..7e6e76e4fa 100755 --- a/main/auth/courses_categories.php +++ b/main/auth/courses_categories.php @@ -105,14 +105,19 @@ $code = isset($code) ? $code : null; $form .= '
'; $form .= ''; $form .= '