parent
9aaf70ca9d
commit
dd4416488f
@ -1,323 +0,0 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
/** |
||||
* View (MVC patter) for courses. |
||||
* |
||||
* @todo fix this. use twig templates |
||||
* |
||||
* @author Christian Fasanando <christian1827@gmail.com> - Beeznest |
||||
* |
||||
* @package chamilo.auth |
||||
*/ |
||||
|
||||
// Access rights: anonymous users can't do anything usefull here. |
||||
api_block_anonymous_users(); |
||||
$stok = Security::get_token(); |
||||
$courses_without_category = isset($courses_in_category[0]) ? $courses_in_category[0] : null; |
||||
echo '<div id="actions" class="actions">'; |
||||
if ($action != 'createcoursecategory') { |
||||
echo '<a href="'.api_get_self().'?action=createcoursecategory">'; |
||||
echo Display::return_icon('new_folder.png', get_lang('CreateCourseCategory'), '', '32'); |
||||
echo '</a>'; |
||||
} |
||||
echo '</div>'; |
||||
|
||||
if (!empty($message)) { |
||||
echo Display::return_message($message, 'confirm', false); |
||||
} |
||||
|
||||
$allowCollapsable = api_get_configuration_value('allow_user_course_category_collapsable'); |
||||
$teachersIcon = Display::return_icon('teacher.png', get_lang('Teachers'), null, ICON_SIZE_TINY); |
||||
|
||||
// COURSES WITH CATEGORIES |
||||
if (!empty($user_course_categories)) { |
||||
$counter = 0; |
||||
$last = end($user_course_categories); |
||||
foreach ($user_course_categories as $row) { |
||||
echo Display::page_subheader($row['title']); |
||||
echo '<a name="category'.$row['id'].'"></a>'; |
||||
$url = api_get_path(WEB_CODE_PATH).'auth/courses.php?categoryid='.$row['id'].'&sec_token='.$stok; |
||||
if (isset($_GET['categoryid']) && $_GET['categoryid'] == $row['id']) { |
||||
?> |
||||
<!-- We display the edit form for the category --> |
||||
<form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
|
||||
<input type="hidden" name="edit_course_category" value="<?php echo $row['id']; ?>" />
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="text" name="title_course_category" value="<?php echo $row['title']; ?>" />
|
||||
<button class="save" type="submit" name="submit_edit_course_category"><?php echo get_lang('Ok'); ?></button>
|
||||
</form> |
||||
<?php |
||||
} |
||||
if ($action != 'unsubscribe') { |
||||
if ($allowCollapsable) { |
||||
if (isset($row['collapsed']) && $row['collapsed'] == 0) { |
||||
echo Display::url( |
||||
'<i class="fa fa-folder-open"></i>', |
||||
$url.'&action=set_collapsable&option=1' |
||||
); |
||||
} else { |
||||
echo Display::url( |
||||
'<i class="fa fa-folder"></i>', |
||||
$url.'&action=set_collapsable&option=0' |
||||
); |
||||
} |
||||
} ?> |
||||
<a href="courses.php?action=sortmycourses&categoryid=<?php echo $row['id']; ?>&sec_token=<?php echo $stok; ?>#category<?php echo $row['id']; ?>">
|
||||
<?php echo Display::display_icon('edit.png', get_lang('Edit'), '', 22); ?> |
||||
</a> |
||||
<?php if (0 != $counter) { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&move=up&category=<?php echo $row['id']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::return_icon('up.png', get_lang('Up'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
?> |
||||
<?php echo Display::return_icon('up_na.png', get_lang('Up'), '', 22); ?> |
||||
<?php |
||||
} |
||||
if ($row['id'] != $last['id']) { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&move=down&category=<?php echo $row['id']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::return_icon('down.png', get_lang('Down'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::return_icon('down_na.png', get_lang('Down'), '', 22); ?> |
||||
<?php |
||||
} ?> |
||||
<a href="courses.php?action=deletecoursecategory&id=<?php echo $row['id']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon( |
||||
'delete.png', |
||||
get_lang('Delete'), |
||||
[ |
||||
'onclick' => "javascript: if (!confirm('".addslashes( |
||||
api_htmlentities( |
||||
get_lang('CourseCategoryAbout2bedeleted'), |
||||
ENT_QUOTES, |
||||
api_get_system_encoding() |
||||
) |
||||
)."')) return false;", |
||||
], |
||||
22 |
||||
); ?> |
||||
</a> |
||||
<?php |
||||
} |
||||
|
||||
$counter++; |
||||
echo '<br /><br />'; |
||||
// Show the courses inside this category |
||||
echo '<table class="data_table">'; |
||||
$number_of_courses = isset($courses_in_category[$row['id']]) ? count($courses_in_category[$row['id']]) : 0; |
||||
$key = 0; |
||||
if (!empty($courses_in_category[$row['id']])) { |
||||
foreach ($courses_in_category[$row['id']] as $course) { |
||||
echo '<tr><td>'; |
||||
echo '<a name="course'.$course['code'].'"></a>'; |
||||
echo '<strong>'.$course['title'].'</strong>'; |
||||
echo ' ('.$course['visual_code'].')'; |
||||
echo '<br />'; |
||||
echo $teachersIcon; |
||||
echo ' '; |
||||
echo CourseManager::getTeacherListFromCourseCodeToString($course['code']); |
||||
echo '<br />'; |
||||
|
||||
if (api_get_setting('display_teacher_in_courselist') === 'true') { |
||||
echo $course['tutor']; |
||||
} |
||||
echo '</td><td valign="top">'; |
||||
if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { |
||||
$edit_course = Security::remove_XSS($_GET['edit']); ?> |
||||
|
||||
<form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="hidden" name="course_2_edit_category" value="<?php echo $edit_course; ?>" />
|
||||
<select name="course_categories"> |
||||
<option value="0"><?php echo get_lang('NoCourseCategory'); ?></option>
|
||||
<?php foreach ($user_course_categories as $row) { |
||||
?> |
||||
<option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?></option>
|
||||
<?php |
||||
} ?> |
||||
</select> |
||||
<button class="save" type="submit" name="submit_change_course_category"><?php echo get_lang('Ok'); ?></button>
|
||||
</form> |
||||
<?php |
||||
} ?> |
||||
<div style="float:left;width:110px;"> |
||||
<?php |
||||
if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') { |
||||
$icon_title = get_lang('CourseDetails').' - '.$course['title']; ?> |
||||
<a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code']; ?>" data-title="<?php echo $icon_title; ?>" title="<?php echo $icon_title; ?>" class="ajax">
|
||||
<?php echo Display::return_icon('info.png', $icon_title, '', '22'); ?> |
||||
<?php |
||||
} ?> |
||||
</a> |
||||
|
||||
<?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { |
||||
?> |
||||
<?php echo Display::display_icon('edit_na.png', get_lang('Edit'), '', 22); ?> |
||||
<?php |
||||
} else { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&edit=<?php echo $course['code']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('edit.png', get_lang('Edit'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} ?> |
||||
|
||||
<?php if ($key > 0) { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&move=up&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('up.png', get_lang('Up'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
?> |
||||
<?php echo Display::display_icon('up_na.png', get_lang('Up'), '', 22); ?> |
||||
<?php |
||||
} ?> |
||||
|
||||
<?php if ($key < $number_of_courses - 1) { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&move=down&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('down.png', get_lang('Down'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
?> |
||||
<?php echo Display::display_icon('down_na.png', get_lang('Down'), '', 22); ?> |
||||
<?php |
||||
} ?> |
||||
|
||||
</div> |
||||
<div style="float:left; margin-right:10px;"> |
||||
<?php |
||||
if ($course['status'] != 1) { |
||||
if ($course['unsubscr'] == 1) { |
||||
?> |
||||
|
||||
<form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding())); ?>')) return false">
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
|
||||
<button class="btn btn-default" value="<?php echo get_lang('Unsubscribe'); ?>" name="unsub">
|
||||
<?php echo get_lang('Unsubscribe'); ?> |
||||
</button> |
||||
</form> |
||||
</div> |
||||
<?php |
||||
} |
||||
} |
||||
$key++; |
||||
} |
||||
echo '</table>'; |
||||
} |
||||
} |
||||
} |
||||
|
||||
echo Display::page_subheader(get_lang('NoCourseCategory')); |
||||
echo '<table class="data_table">'; |
||||
// COURSES WITHOUT CATEGORY |
||||
if (!empty($courses_without_category)) { |
||||
$number_of_courses = count($courses_without_category); |
||||
$key = 0; |
||||
foreach ($courses_without_category as $course) { |
||||
echo '<tr><td>'; |
||||
echo '<a name="course'.$course['code'].'"></a>'; |
||||
echo '<strong>'.$course['title'].'</strong>'; |
||||
echo ' ('.$course['visual_code'].')'; |
||||
echo '<br />'; |
||||
echo $teachersIcon; |
||||
echo ' '; |
||||
echo CourseManager::getTeacherListFromCourseCodeToString($course['code']); |
||||
echo '<br />'; |
||||
|
||||
if (api_get_setting('display_teacher_in_courselist') === 'true') { |
||||
echo $course['tutor']; |
||||
} |
||||
echo '</td><td valign="top">'; |
||||
// the edit icon OR the edit dropdown list |
||||
if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { |
||||
$edit_course = Security::remove_XSS($_GET['edit']); ?> |
||||
<div style="float:left;"> |
||||
<form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="hidden" name="course_2_edit_category" value="<?php echo $edit_course; ?>" />
|
||||
<select name="course_categories"> |
||||
<option value="0"><?php echo get_lang("NoCourseCategory"); ?></option>
|
||||
<?php foreach ($user_course_categories as $row) { |
||||
?> |
||||
<option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?></option>
|
||||
<?php |
||||
} ?> |
||||
</select> |
||||
<button class="save" type="submit" name="submit_change_course_category"><?php echo get_lang('Ok'); ?></button>
|
||||
</form><br /> |
||||
</div> |
||||
<?php |
||||
} ?> |
||||
<div style="float:left; width:110px"> |
||||
<?php |
||||
if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') { |
||||
$icon_title = get_lang('CourseDetails').' - '.$course['title']; ?> |
||||
<a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code']; ?>" data-title="<?php echo $icon_title; ?>" title="<?php echo $icon_title; ?>" class="ajax">
|
||||
<?php echo Display::return_icon('info.png', $icon_title, '', '22'); ?> |
||||
</a> |
||||
<?php |
||||
} |
||||
if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { |
||||
echo Display::display_icon('edit_na.png', get_lang('Edit'), '', 22); |
||||
} else { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&edit=<?php echo $course['code']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('edit.png', get_lang('Edit'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} |
||||
if ($key > 0) { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&move=up&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('up.png', get_lang('Up'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::display_icon('up_na.png', get_lang('Up'), '', 22); |
||||
} |
||||
if ($key < $number_of_courses - 1) { |
||||
?> |
||||
<a href="courses.php?action=<?php echo $action; ?>&move=down&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('down.png', get_lang('Down'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::display_icon('down_na.png', get_lang('Down'), '', 22); |
||||
} ?> |
||||
</div> |
||||
<div style="float:left; margin-right:10px;"> |
||||
<!-- cancel subscrioption--> |
||||
<?php |
||||
if ($course['status'] != 1) { |
||||
if ($course['unsubscr'] == 1) { |
||||
?> |
||||
<!-- changed link to submit to avoid action by the search tool indexer --> |
||||
<form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding())); ?>')) return false;">
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
|
||||
<button class="btn btn-default" value="<?php echo get_lang('Unsubscribe'); ?>" name="unsub">
|
||||
<?php echo get_lang('Unsubscribe'); ?> |
||||
</button> |
||||
</form> |
||||
</div> |
||||
<?php |
||||
} |
||||
} ?> |
||||
</td> |
||||
</tr> |
||||
<?php |
||||
$key++; |
||||
} |
||||
} |
||||
?> |
||||
</table> |
@ -0,0 +1,460 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
$cidReset = true; // Flag forcing the 'current course' reset |
||||
|
||||
require_once __DIR__.'/../inc/global.inc.php'; |
||||
|
||||
api_block_anonymous_users(); |
||||
|
||||
$auth = new Auth(); |
||||
$user_course_categories = CourseManager::get_user_course_categories(api_get_user_id()); |
||||
$courses_in_category = $auth->get_courses_in_category(); |
||||
|
||||
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; |
||||
$currentUrl = api_get_self(); |
||||
|
||||
$interbreadcrumb[] = [ |
||||
'url' => api_get_self(), |
||||
'name' => get_lang('SortMyCourses'), |
||||
]; |
||||
|
||||
// We are moving the course of the user to a different user defined course category (=Sort My Courses). |
||||
if (isset($_POST['submit_change_course_category'])) { |
||||
$result = $auth->updateCourseCategory($_POST['course_2_edit_category'], $_POST['course_categories']); |
||||
if ($result) { |
||||
Display::addFlash( |
||||
Display::return_message(get_lang('EditCourseCategorySucces')) |
||||
); |
||||
} |
||||
header('Location: '.api_get_self()); |
||||
exit; |
||||
} |
||||
|
||||
// We edit course category |
||||
if (isset($_POST['submit_edit_course_category']) && |
||||
isset($_POST['title_course_category']) |
||||
) { |
||||
$result = $auth->store_edit_course_category($_POST['title_course_category'], $_POST['category_id']); |
||||
if ($result) { |
||||
Display::addFlash( |
||||
Display::return_message(get_lang('CourseCategoryEditStored')) |
||||
); |
||||
} |
||||
|
||||
header('Location: '.api_get_self()); |
||||
exit; |
||||
} |
||||
|
||||
// We are creating a new user defined course category (= Create Course Category). |
||||
if (isset($_POST['create_course_category']) && |
||||
isset($_POST['title_course_category']) && |
||||
strlen(trim($_POST['title_course_category'])) > 0 |
||||
) { |
||||
$result = $auth->store_course_category($_POST['title_course_category']); |
||||
if ($result) { |
||||
Display::addFlash( |
||||
Display::return_message(get_lang('CourseCategoryStored')) |
||||
); |
||||
} else { |
||||
Display::addFlash( |
||||
Display::return_message( |
||||
get_lang('ACourseCategoryWithThisNameAlreadyExists'), |
||||
'error' |
||||
) |
||||
); |
||||
} |
||||
header('Location: '.api_get_self()); |
||||
exit; |
||||
} |
||||
|
||||
// We are moving a course or category of the user up/down the list (=Sort My Courses). |
||||
if (isset($_GET['move'])) { |
||||
if (isset($_GET['course'])) { |
||||
$result = $auth->move_course($_GET['move'], $_GET['course'], $_GET['category']); |
||||
if ($result) { |
||||
Display::addFlash( |
||||
Display::return_message(get_lang('CourseSortingDone')) |
||||
); |
||||
} |
||||
} |
||||
if (isset($_GET['category']) && !isset($_GET['course'])) { |
||||
$result = $auth->move_category($_GET['move'], $_GET['category']); |
||||
if ($result) { |
||||
Display::addFlash( |
||||
Display::return_message(get_lang('CategorySortingDone')) |
||||
); |
||||
} |
||||
} |
||||
header('Location: '.api_get_self()); |
||||
exit; |
||||
} |
||||
|
||||
switch ($action) { |
||||
case 'edit_category': |
||||
$categoryId = isset($_GET['category_id']) ? (int) $_GET['category_id'] : 0; |
||||
$categoryInfo = $auth->getUserCourseCategory($categoryId); |
||||
if ($categoryInfo) { |
||||
$categoryName = $categoryInfo['title']; |
||||
$form = new FormValidator( |
||||
'edit_course_category', |
||||
'post', |
||||
$currentUrl.'?action=edit_category' |
||||
); |
||||
$form->addText('title_course_category', get_lang('Name')); |
||||
$form->addHidden('category_id', $categoryId); |
||||
$form->addButtonSave(get_lang('Edit'), 'submit_edit_course_category'); |
||||
$form->setDefaults(['title_course_category' => $categoryName]); |
||||
$form->display(); |
||||
} |
||||
exit; |
||||
break; |
||||
case 'edit_course_category': |
||||
$edit_course = (int) $_GET['course_id']; |
||||
$defaultCategoryId = isset($_GET['category_id']) ? (int) $_GET['category_id'] : 0; |
||||
$courseInfo = api_get_course_info_by_id($edit_course); |
||||
|
||||
if (empty($courseInfo)) { |
||||
exit; |
||||
} |
||||
|
||||
$form = new FormValidator( |
||||
'edit_course_category', |
||||
'post', |
||||
$currentUrl.'?action=edit_course_category' |
||||
); |
||||
|
||||
$form->addHeader($courseInfo['title']); |
||||
|
||||
$options = []; |
||||
foreach ($user_course_categories as $row) { |
||||
$options[$row['id']] = $row['title']; |
||||
} |
||||
asort($options); |
||||
|
||||
$form->addSelect( |
||||
'course_categories', |
||||
get_lang('Categories'), |
||||
$options, |
||||
['disable_js' => true, 'placeholder' => get_lang('SelectAnOption')] |
||||
); |
||||
$form->addHidden('course_2_edit_category', $edit_course); |
||||
|
||||
if (!empty($defaultCategoryId)) { |
||||
$form->setDefaults(['course_categories' => $defaultCategoryId]); |
||||
} |
||||
$form->addButtonSave(get_lang('Save'), 'submit_change_course_category'); |
||||
$form->display(); |
||||
exit; |
||||
break; |
||||
case 'deletecoursecategory': |
||||
// we are deleting a course category |
||||
if (isset($_GET['id'])) { |
||||
if (Security::check_token('get')) { |
||||
$result = $auth->delete_course_category($_GET['id']); |
||||
if ($result) { |
||||
Display::addFlash( |
||||
Display::return_message(get_lang('CourseCategoryDeleted')) |
||||
); |
||||
} |
||||
} |
||||
} |
||||
header('Location: '.api_get_self()); |
||||
exit; |
||||
break; |
||||
case 'createcoursecategory': |
||||
$form = new FormValidator( |
||||
'create_course_category', |
||||
'post', |
||||
$currentUrl.'?action=createcoursecategory' |
||||
); |
||||
$form->addText('title_course_category', get_lang('Name')); |
||||
$form->addButtonSave(get_lang('AddCategory'), 'create_course_category'); |
||||
$form->display(); |
||||
exit; |
||||
break; |
||||
case 'set_collapsable': |
||||
if (!api_get_configuration_value('allow_user_course_category_collapsable')) { |
||||
api_not_allowed(true); |
||||
} |
||||
|
||||
$userId = api_get_user_id(); |
||||
$categoryId = isset($_REQUEST['categoryid']) ? (int) $_REQUEST['categoryid'] : 0; |
||||
$option = isset($_REQUEST['option']) ? (int) $_REQUEST['option'] : 0; |
||||
$redirect = isset($_REQUEST['redirect']) ? $_REQUEST['redirect'] : 0; |
||||
|
||||
if (empty($userId) || empty($categoryId)) { |
||||
api_not_allowed(true); |
||||
} |
||||
|
||||
$table = Database::get_main_table(TABLE_USER_COURSE_CATEGORY); |
||||
$sql = "UPDATE $table |
||||
SET collapsed = $option |
||||
WHERE user_id = $userId AND id = $categoryId"; |
||||
Database::query($sql); |
||||
Display::addFlash(Display::return_message(get_lang('Updated'))); |
||||
|
||||
if ($redirect === 'home') { |
||||
$url = api_get_path(WEB_PATH).'user_portal.php'; |
||||
header('Location: '.$url); |
||||
exit; |
||||
} |
||||
|
||||
$url = api_get_self(); |
||||
header('Location: '.$url); |
||||
exit; |
||||
break; |
||||
} |
||||
|
||||
Display::display_header(); |
||||
|
||||
$stok = Security::get_token(); |
||||
$courses_without_category = isset($courses_in_category[0]) ? $courses_in_category[0] : null; |
||||
echo '<div id="actions" class="actions">'; |
||||
if ($action != 'createcoursecategory') { |
||||
echo '<a class="ajax" href="'.$currentUrl.'?action=createcoursecategory">'; |
||||
echo Display::return_icon('new_folder.png', get_lang('CreateCourseCategory'), '', '32'); |
||||
echo '</a>'; |
||||
} |
||||
echo '</div>'; |
||||
|
||||
if (!empty($message)) { |
||||
echo Display::return_message($message, 'confirm', false); |
||||
} |
||||
|
||||
$allowCollapsable = api_get_configuration_value('allow_user_course_category_collapsable'); |
||||
$teachersIcon = Display::return_icon('teacher.png', get_lang('Teachers'), null, ICON_SIZE_TINY); |
||||
|
||||
// COURSES WITH CATEGORIES |
||||
if (!empty($user_course_categories)) { |
||||
$counter = 0; |
||||
$last = end($user_course_categories); |
||||
foreach ($user_course_categories as $row) { |
||||
echo Display::page_subheader($row['title']); |
||||
echo '<a name="category'.$row['id'].'"></a>'; |
||||
$url = $currentUrl.'?categoryid='.$row['id'].'&sec_token='.$stok; |
||||
if ($allowCollapsable) { |
||||
if (isset($row['collapsed']) && $row['collapsed'] == 0) { |
||||
echo Display::url( |
||||
'<i class="fa fa-folder-open"></i>', |
||||
$url.'&action=set_collapsable&option=1' |
||||
); |
||||
} else { |
||||
echo Display::url( |
||||
'<i class="fa fa-folder"></i>', |
||||
$url.'&action=set_collapsable&option=0' |
||||
); |
||||
} |
||||
} |
||||
|
||||
echo Display::url( |
||||
Display::return_icon('edit.png', get_lang('Edit'), '', 22), |
||||
$currentUrl.'?action=edit_category&category_id='.$row['id'].'&sec_token='.$stok, |
||||
['class' => 'ajax'] |
||||
); |
||||
|
||||
if (0 != $counter) { |
||||
echo Display::url( |
||||
Display::return_icon('up.png', get_lang('Up'), '', 22), |
||||
$currentUrl.'?move=up&category='.$row['id'].'&sec_token='.$stok |
||||
); |
||||
} else { |
||||
echo Display::return_icon('up_na.png', get_lang('Up'), '', 22); |
||||
} |
||||
if ($row['id'] != $last['id']) { |
||||
echo Display::url( |
||||
Display::return_icon('down.png', get_lang('Down'), '', 22), |
||||
$currentUrl.'?move=down&category='.$row['id'].'&sec_token='.$stok |
||||
); |
||||
} else { |
||||
echo Display::return_icon('down_na.png', get_lang('Down'), '', 22); |
||||
} |
||||
|
||||
echo Display::url( |
||||
Display::return_icon( |
||||
'delete.png', |
||||
get_lang('Delete'), |
||||
[ |
||||
'onclick' => "javascript: if (!confirm('".addslashes( |
||||
api_htmlentities( |
||||
get_lang('CourseCategoryAbout2bedeleted'), |
||||
ENT_QUOTES, |
||||
api_get_system_encoding() |
||||
) |
||||
)."')) return false;", |
||||
], |
||||
22 |
||||
), |
||||
$currentUrl.'?action=deletecoursecategory&id='.$row['id'].'&sec_token='.$stok |
||||
); |
||||
|
||||
$counter++; |
||||
echo '<br /><br />'; |
||||
// Show the courses inside this category |
||||
echo '<table class="data_table">'; |
||||
$number_of_courses = isset($courses_in_category[$row['id']]) ? count($courses_in_category[$row['id']]) : 0; |
||||
$key = 0; |
||||
if (!empty($courses_in_category[$row['id']])) { |
||||
foreach ($courses_in_category[$row['id']] as $course) { |
||||
echo '<tr><td>'; |
||||
echo '<a name="course'.$course['code'].'"></a>'; |
||||
echo '<strong>'.$course['title'].'</strong>'; |
||||
echo ' ('.$course['visual_code'].')'; |
||||
echo '<br />'; |
||||
echo $teachersIcon; |
||||
echo ' '; |
||||
echo CourseManager::getTeacherListFromCourseCodeToString($course['code']); |
||||
echo '<br />'; |
||||
|
||||
if (api_get_setting('display_teacher_in_courselist') === 'true') { |
||||
echo $course['tutor']; |
||||
} |
||||
echo '</td><td valign="top">'; |
||||
?> |
||||
<div style="float:left;width:110px;"> |
||||
<?php |
||||
if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') { |
||||
$icon_title = get_lang('CourseDetails').' - '.$course['title']; ?> |
||||
<a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code']; ?>" data-title="<?php echo $icon_title; ?>" title="<?php echo $icon_title; ?>" class="ajax">
|
||||
<?php |
||||
echo Display::return_icon('info.png', $icon_title, '', '22'); |
||||
} ?> |
||||
</a> |
||||
<?php |
||||
echo Display::url( |
||||
Display::return_icon('edit.png', get_lang('Edit'), '', 22), |
||||
$currentUrl.'?action=edit_course_category&category_id='.$row['id'].'&course_id='.$course['real_id'].'&sec_token='.$stok, |
||||
['class' => 'ajax'] |
||||
); |
||||
|
||||
if ($key > 0) { |
||||
?> |
||||
<a href="<?php echo $currentUrl; ?>?action=<?php echo $action; ?>&move=up&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('up.png', get_lang('Up'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::display_icon('up_na.png', get_lang('Up'), '', 22); |
||||
} |
||||
if ($key < $number_of_courses - 1) { |
||||
?> |
||||
<a href="<?php echo $currentUrl; ?>?action=<?php echo $action; ?>&move=down&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::return_icon('down.png', get_lang('Down'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::return_icon('down_na.png', get_lang('Down'), '', 22); |
||||
} ?> |
||||
</div> |
||||
<div style="float:left; margin-right:10px;"> |
||||
<?php |
||||
if ($course['status'] != 1) { |
||||
if ($course['unsubscr'] == 1) { |
||||
?> |
||||
|
||||
<form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding())); ?>')) return false">
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
|
||||
<button class="btn btn-default" value="<?php echo get_lang('Unsubscribe'); ?>" name="unsub">
|
||||
<?php echo get_lang('Unsubscribe'); ?> |
||||
</button> |
||||
</form> |
||||
</div> |
||||
<?php |
||||
} |
||||
} |
||||
$key++; |
||||
} |
||||
echo '</table>'; |
||||
} |
||||
} |
||||
} |
||||
|
||||
echo Display::page_subheader(get_lang('NoCourseCategory')); |
||||
echo '<table class="data_table">'; |
||||
// COURSES WITHOUT CATEGORY |
||||
if (!empty($courses_without_category)) { |
||||
$number_of_courses = count($courses_without_category); |
||||
$key = 0; |
||||
foreach ($courses_without_category as $course) { |
||||
echo '<tr><td>'; |
||||
echo '<a name="course'.$course['code'].'"></a>'; |
||||
echo '<strong>'.$course['title'].'</strong>'; |
||||
echo ' ('.$course['visual_code'].')'; |
||||
echo '<br />'; |
||||
echo $teachersIcon; |
||||
echo ' '; |
||||
echo CourseManager::getTeacherListFromCourseCodeToString($course['code']); |
||||
echo '<br />'; |
||||
|
||||
if (api_get_setting('display_teacher_in_courselist') === 'true') { |
||||
echo $course['tutor']; |
||||
} |
||||
echo '</td><td valign="top">'; |
||||
?> |
||||
<div style="float:left; width:110px"> |
||||
<?php |
||||
if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') { |
||||
$icon_title = get_lang('CourseDetails').' - '.$course['title']; ?> |
||||
<a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code']; ?>" data-title="<?php echo $icon_title; ?>" title="<?php echo $icon_title; ?>" class="ajax">
|
||||
<?php echo Display::return_icon('info.png', $icon_title, '', '22'); ?> |
||||
</a> |
||||
<?php |
||||
} |
||||
echo ''; |
||||
if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { |
||||
echo Display::return_icon('edit_na.png', get_lang('Edit'), '', 22); |
||||
} else { |
||||
echo Display::url( |
||||
Display::return_icon('edit.png', get_lang('Edit'), '', 22), |
||||
$currentUrl.'?action=edit_course_category&course_id='.$course['real_id'].'&'.$stok, |
||||
['class' => 'ajax'] |
||||
); |
||||
} |
||||
if ($key > 0) { |
||||
?> |
||||
<a href="<?php echo $currentUrl; ?>?action=<?php echo $action; ?>&move=up&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('up.png', get_lang('Up'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::return_icon('up_na.png', get_lang('Up'), '', 22); |
||||
} |
||||
if ($key < $number_of_courses - 1) { |
||||
?> |
||||
<a href="<?php echo $currentUrl; ?>?action=<?php echo $action; ?>&move=down&course=<?php echo $course['code']; ?>&category=<?php echo $course['user_course_cat']; ?>&sec_token=<?php echo $stok; ?>">
|
||||
<?php echo Display::display_icon('down.png', get_lang('Down'), '', 22); ?> |
||||
</a> |
||||
<?php |
||||
} else { |
||||
echo Display::return_icon('down_na.png', get_lang('Down'), '', 22); |
||||
} ?> |
||||
</div> |
||||
<div style="float:left; margin-right:10px;"> |
||||
<?php |
||||
if ($course['status'] != 1) { |
||||
if ($course['unsubscr'] == 1) { |
||||
?> |
||||
<!-- changed link to submit to avoid action by the search tool indexer --> |
||||
<form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding())); ?>')) return false;">
|
||||
<input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
|
||||
<input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
|
||||
<button class="btn btn-default" value="<?php echo get_lang('Unsubscribe'); ?>" name="unsub">
|
||||
<?php echo get_lang('Unsubscribe'); ?> |
||||
</button> |
||||
</form> |
||||
</div> |
||||
<?php |
||||
} |
||||
} ?> |
||||
</td> |
||||
</tr> |
||||
<?php |
||||
$key++; |
||||
} |
||||
} |
||||
?> |
||||
</table> |
||||
<?php |
||||
Display::display_footer(); |
||||
|
Loading…
Reference in new issue