Skip to content

Commit 649f276

Browse files
committed
Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x
2 parents eb15f57 + 25775b6 commit 649f276

File tree

8 files changed

+175
-152
lines changed

8 files changed

+175
-152
lines changed

main/inc/lib/message.lib.php

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -562,18 +562,19 @@ public static function send_message_simple(
562562
* @author Christian Fasanando Flores
563563
* @param int $parent_id
564564
* @param int $receiver_user_id
565-
* @param int $message_id
565+
* @param int $messageId
566566
* @return void
567567
*/
568568
public static function update_parent_ids_from_reply(
569569
$parent_id,
570570
$receiver_user_id,
571-
$message_id
571+
$messageId
572572
) {
573573
$table = Database::get_main_table(TABLE_MESSAGE);
574574
$parent_id = intval($parent_id);
575575
$receiver_user_id = intval($receiver_user_id);
576-
$message_id = intval($message_id);
576+
$messageId = intval($messageId);
577+
577578
// first get data from message id (parent)
578579
$sql = "SELECT * FROM $table WHERE id = '$parent_id'";
579580
$rs_message = Database::query($sql);
@@ -592,7 +593,7 @@ public static function update_parent_ids_from_reply(
592593

593594
// update parent_id for other user receiver
594595
$sql = "UPDATE $table SET parent_id = ".$row['id']."
595-
WHERE id = $message_id";
596+
WHERE id = $messageId";
596597
Database::query($sql);
597598
}
598599

@@ -610,7 +611,7 @@ public static function delete_message_by_user_receiver($user_receiver_id, $id)
610611
$user_receiver_id = intval($user_receiver_id);
611612
$id = intval($id);
612613
$sql = "SELECT * FROM $table
613-
WHERE id=".$id." AND msg_status <>".MESSAGE_STATUS_OUTBOX;
614+
WHERE id = ".$id." AND msg_status <>".MESSAGE_STATUS_OUTBOX;
614615
$rs = Database::query($sql);
615616

616617
if (Database::num_rows($rs) > 0) {
@@ -1071,34 +1072,34 @@ public static function get_number_of_messages_sent()
10711072
* @todo replace numbers with letters in the $row array pff...
10721073
* @return string html with the message content
10731074
*/
1074-
public static function show_message_box($message_id, $source = 'inbox')
1075+
public static function showMessageBox($messageId, $source = 'inbox')
10751076
{
10761077
$table = Database::get_main_table(TABLE_MESSAGE);
1077-
$message_id = intval($message_id);
1078+
$messageId = intval($messageId);
10781079

10791080
if ($source == 'outbox') {
1080-
if (isset($message_id) && is_numeric($message_id)) {
1081+
if (isset($messageId) && is_numeric($messageId)) {
10811082
$query = "SELECT * FROM $table
10821083
WHERE
10831084
user_sender_id = ".api_get_user_id()." AND
1084-
id = " . $message_id." AND
1085+
id = ".$messageId." AND
10851086
msg_status = ".MESSAGE_STATUS_OUTBOX;
10861087
$result = Database::query($query);
10871088
}
10881089
} else {
1089-
if (is_numeric($message_id) && !empty($message_id)) {
1090+
if (is_numeric($messageId) && !empty($messageId)) {
10901091
$query = "UPDATE $table SET
10911092
msg_status = '".MESSAGE_STATUS_NEW."'
10921093
WHERE
10931094
user_receiver_id=" . api_get_user_id()." AND
1094-
id='" . $message_id."'";
1095+
id='" . $messageId."'";
10951096
Database::query($query);
10961097

10971098
$query = "SELECT * FROM $table
10981099
WHERE
10991100
msg_status<> ".MESSAGE_STATUS_OUTBOX." AND
11001101
user_receiver_id=".api_get_user_id()." AND
1101-
id='" . $message_id."'";
1102+
id='" . $messageId."'";
11021103
$result = Database::query($query);
11031104
}
11041105
}
@@ -1107,7 +1108,7 @@ public static function show_message_box($message_id, $source = 'inbox')
11071108

11081109
// get file attachments by message id
11091110
$files_attachments = self::get_links_message_attachment_files(
1110-
$message_id,
1111+
$messageId,
11111112
$source
11121113
);
11131114

@@ -1179,10 +1180,10 @@ public static function show_message_box($message_id, $source = 'inbox')
11791180
} else {
11801181
$message_content .= '<a href="inbox.php?'.$social_link.'">'.
11811182
Display::return_icon('back.png', get_lang('ReturnToInbox')).'</a> &nbsp';
1182-
$message_content .= '<a href="new_message.php?re_id='.$message_id.'&'.$social_link.'">'.
1183+
$message_content .= '<a href="new_message.php?re_id='.$messageId.'&'.$social_link.'">'.
11831184
Display::return_icon('message_reply.png', get_lang('ReplyToMessage')).'</a> &nbsp';
11841185
}
1185-
$message_content .= '<a href="inbox.php?action=deleteone&id='.$message_id.'&'.$social_link.'" >'.
1186+
$message_content .= '<a href="inbox.php?action=deleteone&id='.$messageId.'&'.$social_link.'" >'.
11861187
Display::return_icon('delete.png', get_lang('DeleteMessage')).'</a>&nbsp';
11871188

11881189
$message_content .= '</div></td>
@@ -1338,10 +1339,10 @@ public static function display_messages_for_group($group_id)
13381339
* @param $group_id
13391340
* @param $topic_id
13401341
* @param $is_member
1341-
* @param $message_id
1342+
* @param $messageId
13421343
* @return string
13431344
*/
1344-
public static function display_message_for_group($group_id, $topic_id, $is_member, $message_id)
1345+
public static function display_message_for_group($group_id, $topic_id, $is_member, $messageId)
13451346
{
13461347
global $my_group_role;
13471348
$main_message = self::get_message_by_id($topic_id);
@@ -1633,21 +1634,21 @@ public function order_desc_date($array1, $array2)
16331634

16341635
/**
16351636
* Get array of links (download) for message attachment files
1636-
* @param int $message_id
1637+
* @param int $messageId
16371638
* @param string $type message list (inbox/outbox)
16381639
* @return array
16391640
*/
1640-
public static function get_links_message_attachment_files($message_id, $type = '')
1641+
public static function get_links_message_attachment_files($messageId, $type = '')
16411642
{
16421643
$tbl_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
1643-
$message_id = intval($message_id);
1644+
$messageId = intval($messageId);
16441645

16451646
// get file attachments by message id
16461647
$links_attach_file = array();
1647-
if (!empty($message_id)) {
1648+
if (!empty($messageId)) {
16481649

16491650
$sql = "SELECT * FROM $tbl_message_attach
1650-
WHERE message_id = '$message_id'";
1651+
WHERE message_id = '$messageId'";
16511652

16521653
$rs_file = Database::query($sql);
16531654
if (Database::num_rows($rs_file) > 0) {
@@ -1669,16 +1670,16 @@ public static function get_links_message_attachment_files($message_id, $type = '
16691670

16701671
/**
16711672
* Get message list by id
1672-
* @param int $message_id
1673+
* @param int $messageId
16731674
* @return array
16741675
*/
1675-
public static function get_message_by_id($message_id)
1676+
public static function get_message_by_id($messageId)
16761677
{
16771678
$table = Database::get_main_table(TABLE_MESSAGE);
1678-
$message_id = intval($message_id);
1679+
$messageId = intval($messageId);
16791680
$sql = "SELECT * FROM $table
16801681
WHERE
1681-
id = '$message_id' AND
1682+
id = '$messageId' AND
16821683
msg_status <> '".MESSAGE_STATUS_DELETED."' ";
16831684
$res = Database::query($sql);
16841685
$item = array();

main/inc/lib/skill.lib.php

Lines changed: 136 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,9 +1063,22 @@ public function edit($params)
10631063
*
10641064
* @return array
10651065
*/
1066-
public function getUserSkills($userId, $getSkillData = false)
1066+
public function getUserSkills($userId, $getSkillData = false, $courseId = 0, $sessionId = 0)
10671067
{
1068-
$userId = intval($userId);
1068+
$userId = (int) $userId;
1069+
$courseId = (int) $courseId;
1070+
$sessionId = (int) $sessionId;
1071+
1072+
$courseCondition = '';
1073+
if (!empty($courseId)) {
1074+
$courseCondition = " AND course_id = $courseId ";
1075+
}
1076+
1077+
$sessionCondition = '';
1078+
if (!empty($sessionId)) {
1079+
$sessionCondition = " AND course_id = $sessionId ";
1080+
}
1081+
10691082
$sql = 'SELECT DISTINCT
10701083
s.id,
10711084
s.name,
@@ -1076,7 +1089,8 @@ public function getUserSkills($userId, $getSkillData = false)
10761089
FROM '.$this->table_skill_rel_user.' u
10771090
INNER JOIN '.$this->table.' s
10781091
ON u.skill_id = s.id
1079-
WHERE user_id = '.$userId;
1092+
WHERE
1093+
user_id = '.$userId.' '.$sessionCondition.' '.$courseCondition;
10801094

10811095
$result = Database::query($sql);
10821096
$skills = Database::store_result($result, 'ASSOC');
@@ -1097,6 +1111,125 @@ public function getUserSkills($userId, $getSkillData = false)
10971111
return $skillList;
10981112
}
10991113

1114+
/**
1115+
* @param int $userId
1116+
* @param int $courseId
1117+
* @param int $sessionId
1118+
*
1119+
* @return string
1120+
*/
1121+
public function getUserSkillsTable($userId, $courseId = 0, $sessionId = 0)
1122+
{
1123+
$skills = $this->getUserSkills($userId, true, $courseId, $sessionId);
1124+
1125+
$courseTempList = [];
1126+
$skillParents = [];
1127+
$tableRows = [];
1128+
foreach ($skills as $resultData) {
1129+
$parents = $this->get_parents($resultData['id']);
1130+
foreach ($parents as $parentData) {
1131+
if ($parentData['id'] == 1 || $parentData['parent_id'] == 1) {
1132+
continue;
1133+
}
1134+
$skillParents[$parentData['id']]['passed'] = in_array($parentData['id'], array_keys($skills));
1135+
$skillParents[$parentData['id']][] = $resultData;
1136+
}
1137+
1138+
$courseId = $resultData['course_id'];
1139+
if (!empty($courseId)) {
1140+
if (isset($courseTempList[$courseId])) {
1141+
$courseInfo = $courseTempList[$courseId];
1142+
} else {
1143+
$courseInfo = api_get_course_info_by_id($courseId);
1144+
$courseTempList[$courseId] = $courseInfo;
1145+
}
1146+
}
1147+
1148+
$tableRow = array(
1149+
'skill_badge' => $resultData['img_mini'],
1150+
'skill_name' => $resultData['name'],
1151+
'achieved_at' => api_get_local_time($resultData['acquired_skill_at']),
1152+
'course_image' => '',
1153+
'course_name' => ''
1154+
);
1155+
1156+
if (!empty($courseInfo)) {
1157+
$tableRow['course_image'] = $courseInfo['course_image_source'];
1158+
$tableRow['course_name'] = $courseInfo['title'];
1159+
}
1160+
$tableRows[] = $tableRow;
1161+
}
1162+
1163+
$allowLevels = api_get_configuration_value('skill_levels_names');
1164+
1165+
$tableResult = '<div class="table-responsive">
1166+
<table class="table" id="skillList">
1167+
<thead>
1168+
<tr>
1169+
<th>'.get_lang('AchievedSkills').'</th>
1170+
</tr>
1171+
</thead>
1172+
<tbody>
1173+
<tr><td>';
1174+
//$allowLevels = [];
1175+
if (!empty($skillParents)) {
1176+
if (empty($allowLevels)) {
1177+
$tableResult .= $this->processSkillList($skills);
1178+
} else {
1179+
$table = new HTML_Table(['class' => 'table table-bordered']);
1180+
if (!empty($skillParents)) {
1181+
$column = 0;
1182+
$skillAdded = [];
1183+
foreach ($skillParents as $parentId => $data) {
1184+
if (in_array($parentId, $skillAdded)) {
1185+
continue;
1186+
}
1187+
$parentName = '';
1188+
if ($data['passed']) {
1189+
$parentInfo = $skills[$parentId];
1190+
$parentName = $this->processSkillList([$parentInfo], 'mini', false);
1191+
}
1192+
$table->setHeaderContents(0, $column, $parentName);
1193+
$row = 1;
1194+
$skillsToShow = [];
1195+
foreach ($data as $skillData) {
1196+
if ($skillData['id'] == $parentId) {
1197+
continue;
1198+
}
1199+
if (empty($skillData['id'])) {
1200+
continue;
1201+
}
1202+
$skillAdded[] = $skillData['id'];
1203+
$skillsToShow[] = $skillData;
1204+
}
1205+
$table->setCellContents(
1206+
$row,
1207+
$column,
1208+
$this->processSkillList($skillsToShow, 'mini', false)
1209+
);
1210+
$row++;
1211+
$column++;
1212+
}
1213+
}
1214+
$tableResult .= $table->toHtml();
1215+
}
1216+
} else {
1217+
$tableResult .= get_lang('WithoutAchievedSkills');
1218+
}
1219+
1220+
$tableResult .= '</td>
1221+
</tr>
1222+
</tbody>
1223+
</table>
1224+
</div>';
1225+
1226+
1227+
return [
1228+
'skills' => $tableRows,
1229+
'table' => $tableResult
1230+
];
1231+
}
1232+
11001233
/**
11011234
* @param int $user_id
11021235
* @param int $skill_id

main/inc/lib/social.lib.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2136,11 +2136,11 @@ public static function getSkillBlock($userId)
21362136

21372137
$skill = new Skill();
21382138
$ranking = $skill->getUserSkillRanking($userId);
2139-
$skills = $skill->getUserSkills($userId, true);
2139+
//$skills = $skill->getUserSkills($userId, true);
21402140

21412141
$template = new Template(null, false, false, false, false, false);
21422142
$template->assign('ranking', $ranking);
2143-
$template->assign('skills', $skill->processSkillList($skills));
2143+
$template->assign('skills', $skill->getUserSkillsTable($userId)['table']);
21442144
$template->assign('user_id', $userId);
21452145
$template->assign(
21462146
'show_skills_report_link',

main/inc/lib/tracking.lib.php

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5284,7 +5284,6 @@ public static function show_course_detail($user_id, $course_code, $session_id)
52845284
if (!empty($exercise_list)) {
52855285
$score = $weighting = $exe_id = 0;
52865286
foreach ($exercise_list as $exercices) {
5287-
52885287
$exercise_obj = new Exercise($course_info['real_id']);
52895288
$exercise_obj->read($exercices['id']);
52905289
$visible_return = $exercise_obj->is_visible();
@@ -6458,47 +6457,8 @@ public static function displayUserSkills($userId, $courseId = 0, $sessionId = 0)
64586457
if (Skill::isAllow($userId, false) === false) {
64596458
return '';
64606459
}
6461-
6462-
$userId = intval($userId);
6463-
$courseId = intval($courseId);
6464-
$sessionId = intval($sessionId);
6465-
6466-
$filter = ['user' => $userId];
6467-
$filter['course'] = $courseId ?: null;
6468-
$filter['session'] = $sessionId ?: null;
6469-
6470-
$em = Database::getManager();
6471-
$skillsRelUser = $em->getRepository('ChamiloCoreBundle:SkillRelUser')->findBy($filter);
6472-
6473-
$html = '<div class="table-responsive">
6474-
<table class="table" id="skillList">
6475-
<thead>
6476-
<tr>
6477-
<th>'.get_lang('AchievedSkills').'</th>
6478-
</tr>
6479-
</thead>
6480-
<tbody>
6481-
<tr><td>';
64826460
$skillManager = new Skill();
6483-
if (count($skillsRelUser)) {
6484-
$skills = [];
6485-
foreach ($skillsRelUser as $userSkill) {
6486-
$skill = $skillManager->get($userSkill->getSkill()->getId());
6487-
$skill['url'] = api_get_path(WEB_PATH).'badge/'.$userSkill->getId().'/user/'.$userId;
6488-
$skills[] = $skill;
6489-
}
6490-
$html .= $skillManager->processSkillList($skills);
6491-
6492-
} else {
6493-
$html .= get_lang('WithoutAchievedSkills');
6494-
}
6495-
6496-
$html .= '</td>
6497-
</tr>
6498-
</tbody>
6499-
</table>
6500-
</div>';
6501-
6461+
$html = $skillManager->getUserSkillsTable($userId, $courseId, $sessionId)['table'];
65026462
return $html;
65036463
}
65046464

0 commit comments

Comments
 (0)