You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
334 lines
16 KiB
334 lines
16 KiB
<?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');
|
|
|
|
// 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 ($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
|
|
} ?>
|
|
|
|
<?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 {
|
|
?>
|
|
<?php 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) {
|
|
?>
|
|
<tr>
|
|
<td>
|
|
<a name="course<?php echo $course['code']; ?>"></a>
|
|
<strong><?php echo $course['title']; ?></strong><br />
|
|
<?php
|
|
if (api_get_setting('display_coursecode_in_courselist') === 'true') {
|
|
echo $course['visual_code'];
|
|
}
|
|
|
|
if (api_get_setting('display_coursecode_in_courselist') === 'true' &&
|
|
api_get_setting('display_teacher_in_courselist') === 'true'
|
|
) {
|
|
echo ' - ';
|
|
}
|
|
|
|
if (api_get_setting('display_teacher_in_courselist') === 'true') {
|
|
echo $course['tutor'];
|
|
} ?>
|
|
</td>
|
|
<td valign="top">
|
|
<!-- edit -->
|
|
<?php
|
|
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>
|
|
<a name="course<?php echo $course['code']; ?>"></a>
|
|
<strong><?php echo $course['title']; ?></strong><br />
|
|
<?php
|
|
if (api_get_setting('display_coursecode_in_courselist') === 'true') {
|
|
echo $course['visual_code'];
|
|
}
|
|
|
|
if (api_get_setting('display_coursecode_in_courselist') === 'true' &&
|
|
api_get_setting('display_teacher_in_courselist') === 'true'
|
|
) {
|
|
echo ' - ';
|
|
}
|
|
if (api_get_setting('display_teacher_in_courselist') === 'true') {
|
|
echo $course['tutor'];
|
|
} ?>
|
|
</td>
|
|
<td valign="top">
|
|
<!-- the edit icon OR the edit dropdown list -->
|
|
<?php 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']) {
|
|
?>
|
|
<?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
|
|
} ?>
|
|
|
|
<!-- up /down icons-->
|
|
<?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>
|
|
|