skill_list.php 5.8 KB

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