skills_profile.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * @package chamilo.admin
  5. */
  6. // Language files that need to be included.
  7. $language_file = array('admin');
  8. $cidReset = true;
  9. require_once '../inc/global.inc.php';
  10. require_once api_get_path(LIBRARY_PATH).'skill.lib.php';
  11. $this_section = SECTION_PLATFORM_ADMIN;
  12. api_protect_admin_script();
  13. if (api_get_setting('allow_skills_tool') != 'true') {
  14. api_not_allowed();
  15. }
  16. $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>';
  17. $htmlHeadXtra[] = '<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/style.css" rel="stylesheet" type="text/css" />';
  18. $interbreadcrumb[] = array('url' => 'index.php',"name" => get_lang('PlatformAdmin'));
  19. $skill = new Skill();
  20. $skill_profile = new SkillProfile();
  21. $skill_rel_user = new SkillRelUser();
  22. $url = api_get_path(WEB_AJAX_PATH).'skill.ajax.php';
  23. $tpl['title'] = get_lang('Skills');
  24. $tpl = $app['template'];
  25. $form = new FormValidator('profile_search');
  26. $form->addElement('header', get_lang('SearchSkills'));
  27. $form->addElement('select', 'skills', null, null, array('id'=>'skills'));
  28. $form->addElement('style_submit_button', 'submit', get_lang('Search'), 'class="btn"');
  29. $profiles = $skill_profile->get_all();
  30. $tpl->assign('profiles', $profiles);
  31. $total_skills_to_search = array();
  32. if ($form->validate()) {
  33. $values = $form->getSubmitValues();
  34. $skills = $values['skills'];
  35. if (!empty($skills)) {
  36. $hidden_skills = isset($values['hidden_skills']) ? $values['hidden_skills'] : array();
  37. $skills = array_merge($skills, $hidden_skills);
  38. $skills = array_filter($skills);
  39. $skills = array_unique($skills);
  40. $_SESSION['skills'] = $skills;
  41. } else {
  42. $skills = isset($_SESSION['skills']) ? $_SESSION['skills']: array();
  43. }
  44. } else {
  45. $skills = isset($_SESSION['skills']) ? $_SESSION['skills']: array();
  46. }
  47. $user_list = array();
  48. $count_skills = count($skills);
  49. $users = $skill_rel_user->get_user_by_skills($skills);
  50. if (!empty($users)) {
  51. foreach ($users as $user) {
  52. $user_info = api_get_user_info($user['user_id']);
  53. $user_list[$user['user_id']]['user'] = $user_info;
  54. $my_user_skills = $skill_rel_user->get_user_skills($user['user_id']);
  55. $user_skills = array();
  56. $found_counts = 0 ;
  57. foreach($my_user_skills as $my_skill) {
  58. $found = false;
  59. if (in_array($my_skill['skill_id'], $skills)) {
  60. $found = true;
  61. $found_counts++;
  62. }
  63. $user_skills[] = array('skill_id' => $my_skill['skill_id'], 'found' => $found);
  64. $total_skills_to_search[$my_skill['skill_id']] = $my_skill['skill_id'];
  65. }
  66. $user_list[$user['user_id']]['skills'] = $user_skills;
  67. $user_list[$user['user_id']]['total_found_skills'] = $found_counts;
  68. }
  69. $ordered_user_list = array();
  70. foreach($user_list as $user_id => $user_data) {
  71. $ordered_user_list[$user_data['total_found_skills']][] = $user_data;
  72. }
  73. if (!empty($ordered_user_list)) {
  74. asort($ordered_user_list);
  75. }
  76. }
  77. //$tpl->assign('user_list', $user_list);
  78. $tpl->assign('order_user_list', $ordered_user_list);
  79. $tpl->assign('total_search_skills', $count_skills);
  80. if (!empty($skills)) {
  81. $counter = 0;
  82. foreach($skills as $hidden_skill_id) {
  83. $form->addElement('hidden', 'hidden_skills[]', $hidden_skill_id);
  84. $counter++;
  85. }
  86. }
  87. if (!empty($skills)) {
  88. foreach($skills as $my_skill) {
  89. $total_skills_to_search[$my_skill] = $my_skill;
  90. }
  91. }
  92. $total_skills_to_search = $skill->get_skills_info($total_skills_to_search);
  93. $action = isset($_REQUEST['a']) ? $_REQUEST['a'] : null;
  94. $id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : null;
  95. switch ($action) {
  96. case 'remove_skill':
  97. $new_skill = array();
  98. foreach ($skills as $skill_id) {
  99. if ($id != $skill_id) {
  100. $new_skill[] = $skill_id;
  101. }
  102. }
  103. $skills = $_SESSION['skills'] = $new_skill;
  104. break;
  105. case 'load_profile':
  106. $skill_profile = new SkillRelProfile();
  107. $skills = $skill_profile->get_skills_by_profile($id);
  108. $total_skills_to_search = $skill->get_skills_info($skills);
  109. break;
  110. }
  111. $skill_list = array();
  112. foreach ($total_skills_to_search as $skill_info) {
  113. $skill_list[$skill_info['id']] = $skill_info;
  114. }
  115. $tpl->assign('skill_list', $skill_list);
  116. $tpl->assign('search_skill_list', $skills);
  117. $form_to_html = $form->return_form();
  118. $tpl->assign('form', $form_to_html);
  119. $tpl->assign('url', $url);
  120. $content = $tpl->fetch('default/skill/profile.tpl');
  121. $tpl->assign('content', $content);
  122. $tpl->display_one_col_template();