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.
86 lines
2.4 KiB
86 lines
2.4 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
use Chamilo\CoreBundle\Entity\SkillRelCourse;
|
|
|
|
$cidReset = true;
|
|
require_once __DIR__.'/../inc/global.inc.php';
|
|
|
|
if ('true' !== api_get_setting('skill.allow_skill_rel_items')) {
|
|
api_not_allowed(true);
|
|
}
|
|
|
|
$courseId = isset($_GET['course_id']) ? (int) $_GET['course_id'] : 0;
|
|
|
|
$course = api_get_course_entity($courseId);
|
|
if (empty($course)) {
|
|
api_not_allowed(true);
|
|
}
|
|
|
|
$sessionId = isset($_GET['session_id']) ? (int) $_GET['session_id'] : null;
|
|
|
|
$url = api_get_self().'?course_id='.$courseId.'&session_id='.$sessionId;
|
|
$form = new FormValidator('skills', 'post', $url);
|
|
|
|
$sessionName = $course->getTitleAndCode();
|
|
if (!empty($sessionId)) {
|
|
$session = api_get_session_entity($sessionId);
|
|
$courseExistsInSession = SessionManager::sessionHasCourse($sessionId, $course->getCode());
|
|
if (!$courseExistsInSession) {
|
|
api_not_allowed(true);
|
|
}
|
|
$sessionName = ' '.$session->getName().' - '.$course->getTitleAndCode();
|
|
}
|
|
|
|
$form->addHeader(get_lang('Add skills').$sessionName);
|
|
|
|
$skillList = [];
|
|
$em = Database::getManager();
|
|
$items = $em->getRepository(SkillRelCourse::class)->findBy(
|
|
['course' => $courseId, 'session' => $sessionId]
|
|
);
|
|
/** @var SkillRelCourse $skillRelCourse */
|
|
foreach ($items as $skillRelCourse) {
|
|
$skillList[$skillRelCourse->getSkill()->getId()] = $skillRelCourse->getSkill()->getName();
|
|
}
|
|
|
|
$form->addHidden('course_id', $courseId);
|
|
$form->addHidden('session_id', $sessionId);
|
|
|
|
$form->addSelectAjax(
|
|
'skills',
|
|
get_lang('Skills'),
|
|
$skillList,
|
|
[
|
|
'url' => api_get_path(WEB_AJAX_PATH).'skill.ajax.php?a=search_skills',
|
|
'multiple' => 'multiple',
|
|
]
|
|
);
|
|
|
|
$form->addButtonSave(get_lang('Save'));
|
|
|
|
$form->setDefaults(['skills' => array_keys($skillList)]);
|
|
|
|
if ($form->validate()) {
|
|
$result = SkillModel::saveSkillsToCourseFromForm($form);
|
|
if ($result) {
|
|
Display::addFlash(Display::return_message(get_lang('Update successful')));
|
|
}
|
|
header('Location: '.$url);
|
|
exit;
|
|
}
|
|
$content = $form->returnForm();
|
|
|
|
$interbreadcrumb[] = [
|
|
'url' => api_get_path(WEB_CODE_PATH).'session/session_list.php',
|
|
'name' => get_lang('Session list'),
|
|
];
|
|
|
|
$interbreadcrumb[] = [
|
|
'url' => api_get_path(WEB_CODE_PATH).'session/resume_session.php?id_session='.$sessionId,
|
|
'name' => get_lang('Session overview'),
|
|
];
|
|
|
|
$template = new Template(get_lang('Courses-Skills associations'));
|
|
$template->assign('content', $content);
|
|
$template->display_one_col_template();
|
|
|