Shows a link to the "my learning paths" page in the /index.php and /user_portal.php It also enables the main/lp/my_list.php page.pull/3547/head
parent
3dc2aeac8b
commit
512e1f6346
@ -0,0 +1,92 @@ |
||||
<?php |
||||
|
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
use Chamilo\CourseBundle\Entity\CLp; |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once __DIR__.'/../inc/global.inc.php'; |
||||
|
||||
if (false === api_get_configuration_value('show_my_lps_page')) { |
||||
api_not_allowed(true); |
||||
} |
||||
|
||||
api_block_anonymous_users(); |
||||
|
||||
$userId = api_get_user_id(); |
||||
$courses = CourseManager::get_courses_list_by_user_id($userId, true); |
||||
|
||||
$lps = []; |
||||
if (!empty($courses)) { |
||||
$courseIdList = array_column($courses, 'real_id'); |
||||
$courseWithSession = []; |
||||
foreach ($courses as $course) { |
||||
if (isset($course['session_id'])) { |
||||
if (SESSION_VISIBLE === api_get_session_visibility($course['session_id'])) { |
||||
$courseWithSession[$course['real_id']] = $course['session_id']; |
||||
} |
||||
} |
||||
} |
||||
|
||||
$courseCondition = " AND lp.cId IN ('".implode("', '", $courseIdList)."') "; |
||||
$order = ' ORDER BY lp.createdOn ASC, lp.name ASC'; |
||||
$now = api_get_utc_datetime(); |
||||
$conditions = " ( |
||||
(lp.publicatedOn IS NOT NULL AND lp.publicatedOn < '$now' AND lp.expiredOn IS NOT NULL AND lp.expiredOn > '$now') OR |
||||
(lp.publicatedOn IS NOT NULL AND lp.publicatedOn < '$now' AND lp.expiredOn IS NULL) OR |
||||
(lp.publicatedOn IS NULL AND lp.expiredOn IS NOT NULL AND lp.expiredOn > '$now') OR |
||||
(lp.publicatedOn IS NULL AND lp.expiredOn IS NULL ) |
||||
) |
||||
"; |
||||
|
||||
$dql = "SELECT lp FROM ChamiloCourseBundle:CLp as lp |
||||
WHERE |
||||
$conditions |
||||
$courseCondition |
||||
ORDER BY lp.createdOn ASC, lp.name ASC |
||||
"; |
||||
|
||||
$learningPaths = Database::getManager()->createQuery($dql)->getResult(); |
||||
/** @var CLp $lp */ |
||||
foreach ($learningPaths as $lp) { |
||||
$id = $lp->getIid(); |
||||
$courseId = $lp->getCId(); |
||||
$courseInfo = api_get_course_info_by_id($courseId); |
||||
$lpVisibility = learnpath::is_lp_visible_for_student($id, $userId, $courseInfo); |
||||
if (false === $lpVisibility) { |
||||
continue; |
||||
} |
||||
$sessionId = 0; |
||||
if (isset($courseWithSession[$courseId])) { |
||||
$sessionId = $courseWithSession[$courseId]; |
||||
} |
||||
$lpSessionId = $lp->getSessionId(); |
||||
if (!empty($lpSessionId)) { |
||||
$sessionId = $lpSessionId; |
||||
} |
||||
|
||||
$params = '&cidReq='.$courseInfo['code'].'&id_session='.$sessionId; |
||||
$link = api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?action=view'.$params.'&lp_id='.$id; |
||||
$icon = Display::url( |
||||
Display::return_icon( |
||||
'learnpath.png', |
||||
get_lang('Lp') |
||||
), |
||||
$link |
||||
); |
||||
|
||||
$lps[] = [ |
||||
'name' => $lp->getName(), |
||||
'link' => $link, |
||||
'icon' => $icon, |
||||
'creation_date' => api_get_local_time($lp->getCreatedOn()), |
||||
]; |
||||
} |
||||
} |
||||
|
||||
$template = new Template(get_lang('MyLps')); |
||||
$template->assign('lps', $lps); |
||||
$content = $template->fetch($template->get_template('learnpath/my_list.tpl')); |
||||
$template->assign('content', $content); |
||||
$template->display_one_col_template(); |
@ -0,0 +1,26 @@ |
||||
<h3> |
||||
{{ 'MyLps' | get_lang }} |
||||
</h3> |
||||
<table class="table"> |
||||
<tr> |
||||
<th> |
||||
{{ 'Title' | get_lang }} |
||||
</th> |
||||
<th> |
||||
{{ 'CreationDate' | get_lang }} |
||||
</th> |
||||
</tr> |
||||
{% for lp in lps %} |
||||
<tr> |
||||
<td> |
||||
{{ lp.icon }} |
||||
<a href="{{ lp.link }}" target="_blank"> |
||||
{{ lp.name }} |
||||
</a> |
||||
</td> |
||||
<td> |
||||
{{ lp.creation_date }} |
||||
</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</table> |
Loading…
Reference in new issue