skill_list.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Skill list for management
  5. * @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
  6. * @package chamilo.admin
  7. */
  8. $cidReset = true;
  9. require_once __DIR__.'/../inc/global.inc.php';
  10. $this_section = SECTION_PLATFORM_ADMIN;
  11. api_protect_admin_script();
  12. Skill::isAllowed();
  13. $action = isset($_GET['action']) ? $_GET['action'] : 'list';
  14. $skillId = isset($_GET['id']) ? intval($_GET['id']) : 0;
  15. $entityManager = Database::getManager();
  16. switch ($action) {
  17. case 'enable':
  18. $skill = $entityManager->find('ChamiloCoreBundle:Skill', $skillId);
  19. if (is_null($skill)) {
  20. Display::addFlash(
  21. Display::return_message(
  22. get_lang('SkillNotFound'),
  23. 'error'
  24. )
  25. );
  26. } else {
  27. $updatedAt = new DateTime(
  28. api_get_utc_datetime(),
  29. new DateTimeZone(api_get_timezone())
  30. );
  31. $skill->setStatus(1);
  32. $skill->setUpdatedAt($updatedAt);
  33. $entityManager->persist($skill);
  34. $entityManager->flush();
  35. Display::addFlash(
  36. Display::return_message(
  37. sprintf(get_lang('SkillXEnabled'), $skill->getName()),
  38. 'success'
  39. )
  40. );
  41. }
  42. header('Location: '.api_get_self());
  43. exit;
  44. break;
  45. case 'disable':
  46. /** @var \Chamilo\CoreBundle\Entity\Skill $skill */
  47. $skill = $entityManager->find('ChamiloCoreBundle:Skill', $skillId);
  48. if (is_null($skill)) {
  49. Display::addFlash(
  50. Display::return_message(
  51. get_lang('SkillNotFound'),
  52. 'error'
  53. )
  54. );
  55. } else {
  56. $updatedAt = new DateTime(
  57. api_get_utc_datetime(),
  58. new DateTimeZone(api_get_timezone())
  59. );
  60. $skill->setStatus(0);
  61. $skill->setUpdatedAt($updatedAt);
  62. $entityManager->persist($skill);
  63. $skillObj = new Skill();
  64. $children = $skillObj->getChildren($skill->getId());
  65. foreach ($children as $child) {
  66. $skill = $entityManager->find(
  67. 'ChamiloCoreBundle:Skill',
  68. $child['id']
  69. );
  70. if (empty($skill)) {
  71. continue;
  72. }
  73. $skill->setStatus(0);
  74. $skill->setUpdatedAt($updatedAt);
  75. $entityManager->persist($skill);
  76. }
  77. $entityManager->flush();
  78. Display::addFlash(
  79. Display::return_message(
  80. sprintf(get_lang('SkillXDisabled'), $skill->getName()),
  81. 'success'
  82. )
  83. );
  84. }
  85. header('Location: '.api_get_self());
  86. exit;
  87. break;
  88. case 'list':
  89. // no break
  90. default:
  91. $interbreadcrumb[] = array("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
  92. $toolbar = Display::url(
  93. Display::return_icon(
  94. 'add.png',
  95. get_lang('CreateSkill'),
  96. null,
  97. ICON_SIZE_MEDIUM
  98. ),
  99. api_get_path(WEB_CODE_PATH).'admin/skill_create.php',
  100. ['title' => get_lang('CreateSkill')]
  101. );
  102. $toolbar .= Display::url(
  103. Display::return_icon(
  104. 'wheel_skill.png',
  105. get_lang('SkillsWheel'),
  106. null,
  107. ICON_SIZE_MEDIUM
  108. ),
  109. api_get_path(WEB_CODE_PATH).'admin/skills_wheel.php',
  110. ['title' => get_lang('SkillsWheel')]
  111. );
  112. /*$toolbar .= Display::url(
  113. Display::return_icon(
  114. 'edit-skill.png',
  115. get_lang('BadgesManagement'),
  116. null,
  117. ICON_SIZE_MEDIUM
  118. ),
  119. api_get_path(WEB_CODE_PATH).'admin/skill_badge_list.php',
  120. ['title' => get_lang('BadgesManagement')]
  121. );*/
  122. $toolbar .= Display::url(
  123. Display::return_icon(
  124. 'import_csv.png',
  125. get_lang('ImportSkillsListCSV'),
  126. null,
  127. ICON_SIZE_MEDIUM
  128. ),
  129. api_get_path(WEB_CODE_PATH).'admin/skills_import.php',
  130. ['title' => get_lang('ImportSkillsListCSV')]
  131. );
  132. $extraField = new ExtraField('skill');
  133. $arrayVals = $extraField->get_handler_field_info_by_tags('tags');
  134. $tags = [];
  135. if (isset($arrayVals['options'])) {
  136. foreach ($arrayVals['options'] as $value) {
  137. $tags[] = $value;
  138. }
  139. }
  140. /* View */
  141. $skill = new Skill();
  142. $skillList = $skill->get_all();
  143. $extraFieldSearchTagId = isset($_REQUEST['tag_id']) ? $_REQUEST['tag_id'] : 0;
  144. if ($extraFieldSearchTagId) {
  145. $skills = [];
  146. $skillsFiltered = $extraField->getAllSkillPerTag($arrayVals['id'], $extraFieldSearchTagId);
  147. foreach ($skillList as $index => $value) {
  148. if (array_search($index, $skillsFiltered)) {
  149. $skills[$index] = $value;
  150. }
  151. }
  152. $skillList = $skills;
  153. }
  154. $tpl = new Template(get_lang('ManageSkills'));
  155. $tpl->assign('skills', $skillList);
  156. $tpl->assign('current_tag_id', $extraFieldSearchTagId);
  157. $tpl->assign('tags', $tags);
  158. $templateName = $tpl->get_template('skill/list.tpl');
  159. $content = $tpl->fetch($templateName);
  160. $tpl->assign(
  161. 'actions',
  162. Display::toolbarAction('toolbar', [$toolbar], [12])
  163. );
  164. $tpl->assign('content', $content);
  165. $tpl->display_one_col_template();
  166. break;
  167. }