* * @package chamilo.admin */ $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; $this_section = SECTION_PLATFORM_ADMIN; api_protect_admin_script(); Skill::isAllowed(); $action = isset($_GET['action']) ? $_GET['action'] : 'list'; $skillId = isset($_GET['id']) ? (int) $_GET['id'] : 0; $entityManager = Database::getManager(); switch ($action) { case 'enable': $skill = $entityManager->find('ChamiloCoreBundle:Skill', $skillId); if (is_null($skill)) { Display::addFlash( Display::return_message( get_lang('Skill not found'), 'error' ) ); } else { $updatedAt = new DateTime( api_get_utc_datetime(), new DateTimeZone(api_get_timezone()) ); $skill->setStatus(1); $skill->setUpdatedAt($updatedAt); $entityManager->persist($skill); $entityManager->flush(); Display::addFlash( Display::return_message( sprintf(get_lang('Skill "%s" enabled'), $skill->getName()), 'success' ) ); } header('Location: '.api_get_self()); exit; break; case 'disable': /** @var \Chamilo\CoreBundle\Entity\Skill $skill */ $skill = $entityManager->find('ChamiloCoreBundle:Skill', $skillId); if (is_null($skill)) { Display::addFlash( Display::return_message( get_lang('Skill not found'), 'error' ) ); } else { $updatedAt = new DateTime( api_get_utc_datetime(), new DateTimeZone(api_get_timezone()) ); $skill->setStatus(0); $skill->setUpdatedAt($updatedAt); $entityManager->persist($skill); $skillObj = new Skill(); $children = $skillObj->getChildren($skill->getId()); foreach ($children as $child) { $skill = $entityManager->find( 'ChamiloCoreBundle:Skill', $child['id'] ); if (empty($skill)) { continue; } $skill->setStatus(0); $skill->setUpdatedAt($updatedAt); $entityManager->persist($skill); } $entityManager->flush(); Display::addFlash( Display::return_message( sprintf(get_lang('Skill "%s" disabled'), $skill->getName()), 'success' ) ); } header('Location: '.api_get_self()); exit; break; case 'list': default: $interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('Administration')]; $toolbar = Display::url( Display::return_icon( 'add.png', get_lang('Create skill'), null, ICON_SIZE_MEDIUM ), api_get_path(WEB_CODE_PATH).'admin/skill_create.php', ['title' => get_lang('Create skill')] ); $toolbar .= Display::url( Display::return_icon( 'wheel_skill.png', get_lang('Skills wheel'), null, ICON_SIZE_MEDIUM ), api_get_path(WEB_CODE_PATH).'admin/skills_wheel.php', ['title' => get_lang('Skills wheel')] ); $toolbar .= Display::url( Display::return_icon( 'import_csv.png', get_lang('Import skills from a CSV file'), null, ICON_SIZE_MEDIUM ), api_get_path(WEB_CODE_PATH).'admin/skills_import.php', ['title' => get_lang('Import skills from a CSV file')] ); $extraField = new ExtraField('skill'); $arrayVals = $extraField->get_handler_field_info_by_tags('tags'); $tags = []; if (isset($arrayVals['options'])) { foreach ($arrayVals['options'] as $value) { $tags[] = $value; } } /* View */ $skill = new Skill(); $skillList = $skill->get_all(); $extraFieldSearchTagId = isset($_REQUEST['tag_id']) ? $_REQUEST['tag_id'] : 0; if ($extraFieldSearchTagId) { $skills = []; $skillsFiltered = $extraField->getAllSkillPerTag($arrayVals['id'], $extraFieldSearchTagId); foreach ($skillList as $index => $value) { if (array_search($index, $skillsFiltered)) { $skills[$index] = $value; } } $skillList = $skills; } $tpl = new Template(get_lang('Manage skills')); $tpl->assign('skills', $skillList); $tpl->assign('current_tag_id', $extraFieldSearchTagId); $tpl->assign('tags', $tags); $templateName = $tpl->get_template('skill/list.tpl'); $content = $tpl->fetch($templateName); $tpl->assign( 'actions', Display::toolbarAction('toolbar', [$toolbar], [12]) ); $tpl->assign('content', $content); $tpl->display_one_col_template(); break; }