|
|
|
|
@ -1796,7 +1796,7 @@ class SocialManager extends UserManager |
|
|
|
|
'cidReq' => $courseInfo['code'], |
|
|
|
|
'forum' => $post->getForumId(), |
|
|
|
|
'thread' => $post->getThreadId(), |
|
|
|
|
'post_id' => $post->getIid() |
|
|
|
|
'post_id' => $post->getIid(), |
|
|
|
|
]).'#post_id_'.$post->getIid(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -1932,7 +1932,7 @@ class SocialManager extends UserManager |
|
|
|
|
[ |
|
|
|
|
'id' => 'message_'.$message['id'], |
|
|
|
|
'title' => get_lang('SocialMessageDelete'), |
|
|
|
|
'onclick' => 'deleteComment(' . $message['id'] . ')' |
|
|
|
|
'onclick' => 'deleteComment('.$message['id'].')', |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
$comment .= '</div>'; |
|
|
|
|
@ -2194,7 +2194,7 @@ class SocialManager extends UserManager |
|
|
|
|
$userInfo['language'] = [ |
|
|
|
|
'label' => $languageInfo['original_name'], |
|
|
|
|
'value' => $languageInfo['english_name'], |
|
|
|
|
'code' => $languageInfo['isocode'] |
|
|
|
|
'code' => $languageInfo['isocode'], |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -2430,7 +2430,7 @@ class SocialManager extends UserManager |
|
|
|
|
false, |
|
|
|
|
[ |
|
|
|
|
'cols-size' => [1, 10, 1], |
|
|
|
|
'custom' => true |
|
|
|
|
'custom' => true, |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
$form->addHtml('</div>'); |
|
|
|
|
@ -2578,106 +2578,6 @@ class SocialManager extends UserManager |
|
|
|
|
return $template->fetch($skillBlock); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the formatted header message post. |
|
|
|
|
* |
|
|
|
|
* @param int $authorInfo |
|
|
|
|
* @param int $receiverInfo |
|
|
|
|
* @param array $message Message data |
|
|
|
|
* |
|
|
|
|
* @return string $html The formatted header message post |
|
|
|
|
*/ |
|
|
|
|
private static function headerMessagePost($authorInfo, $receiverInfo, $message) |
|
|
|
|
{ |
|
|
|
|
$currentUserId = api_get_user_id(); |
|
|
|
|
$iconStatus = null; |
|
|
|
|
$authorId = (int) $authorInfo['user_id']; |
|
|
|
|
$receiverId = (int) $receiverInfo['user_id']; |
|
|
|
|
$userStatus = $authorInfo['status']; |
|
|
|
|
$urlImg = api_get_path(WEB_IMG_PATH); |
|
|
|
|
$isAdmin = self::is_admin($authorId); |
|
|
|
|
|
|
|
|
|
if ($userStatus == 5) { |
|
|
|
|
if ($authorInfo['has_certificates']) { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_graduated.svg" width="22px" height="22px">'; |
|
|
|
|
} else { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_student.svg" width="22px" height="22px">'; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if ($userStatus == 1) { |
|
|
|
|
if ($isAdmin) { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_admin.svg" width="22px" height="22px">'; |
|
|
|
|
} else { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_teacher.svg" width="22px" height="22px">'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$date = Display::dateToStringAgoAndLongDate($message['send_date']); |
|
|
|
|
$avatarAuthor = $authorInfo['avatar']; |
|
|
|
|
$urlAuthor = api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$authorId; |
|
|
|
|
$nameCompleteAuthor = $authorInfo['complete_name']; |
|
|
|
|
|
|
|
|
|
$urlReceiver = api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$receiverId; |
|
|
|
|
$nameCompleteReceiver = $receiverInfo['complete_name']; |
|
|
|
|
|
|
|
|
|
$htmlReceiver = ''; |
|
|
|
|
if ($authorId !== $receiverId) { |
|
|
|
|
$htmlReceiver = ' > <a href="'.$urlReceiver.'">'.$nameCompleteReceiver.'</a> '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!empty($message['group_info'])) { |
|
|
|
|
$htmlReceiver = ' > <a href="'.$message['group_info']['url'].'">'.$message['group_info']['name'].'</a> '; |
|
|
|
|
} |
|
|
|
|
$canEdit = ($currentUserId == $authorInfo['user_id'] || $currentUserId == $receiverInfo['user_id']) && empty($message['group_info']); |
|
|
|
|
|
|
|
|
|
if (!empty($message['thread_id'])) { |
|
|
|
|
$htmlReceiver = ' > <a href="'.$message['thread_url'].'">'.$message['forum_title'].'</a> '; |
|
|
|
|
$canEdit = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$postAttachment = self::getPostAttachment($message); |
|
|
|
|
|
|
|
|
|
$html = ''; |
|
|
|
|
$html .= '<div class="top-mediapost">'; |
|
|
|
|
if ($canEdit) { |
|
|
|
|
$htmlDelete = Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('trash'), |
|
|
|
|
'javascript:void(0)', |
|
|
|
|
[ |
|
|
|
|
'id' => 'message_' . $message['id'], |
|
|
|
|
'title' => get_lang('SocialMessageDelete'), |
|
|
|
|
'onclick' => 'deleteMessage(' . $message['id'] . ')' |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
$html .= '<div class="pull-right deleted-mgs">'; |
|
|
|
|
$html .= $htmlDelete; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$html .= '<div class="user-image" >'; |
|
|
|
|
$html .= '<a href="'.$urlAuthor.'"> |
|
|
|
|
<img class="avatar-thumb" src="'.$avatarAuthor.'" alt="'.$nameCompleteAuthor.'"></a>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '<div class="user-data">'; |
|
|
|
|
$html .= $iconStatus; |
|
|
|
|
$html .= '<div class="username"><a href="'.$urlAuthor.'">'.$nameCompleteAuthor.'</a>'.$htmlReceiver.'</div>'; |
|
|
|
|
$html .= '<div>'.$date.'</div>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '<div class="msg-content">'; |
|
|
|
|
$html .= '<div class="post-attachment" >'; |
|
|
|
|
$html .= $postAttachment; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '<p>'.Security::remove_XSS($message['content']).'</p>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '</div>'; // end mediaPost |
|
|
|
|
|
|
|
|
|
// Popularity post functionality |
|
|
|
|
$html .= '<div class="popularity-mediapost"></div>'; |
|
|
|
|
|
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param int $user_id |
|
|
|
|
* |
|
|
|
|
@ -2756,13 +2656,13 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $optionInfo['display_text'] |
|
|
|
|
'value' => $optionInfo['display_text'], |
|
|
|
|
]; |
|
|
|
|
} else { |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => implode(',', $data) |
|
|
|
|
'value' => implode(',', $data), |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
@ -2773,11 +2673,10 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => implode(',', $data) |
|
|
|
|
'value' => implode(',', $data), |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
switch ($extraFieldInfo['field_type']) { |
|
|
|
|
case ExtraField::FIELD_TYPE_RADIO: |
|
|
|
|
@ -2791,7 +2690,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $data |
|
|
|
|
'value' => $data, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
@ -2812,7 +2711,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $value_options |
|
|
|
|
'value' => $value_options, |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
case ExtraField::FIELD_TYPE_TAG: |
|
|
|
|
@ -2832,7 +2731,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $tag_tmp |
|
|
|
|
'value' => $tag_tmp, |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
case ExtraField::FIELD_TYPE_SOCIAL_PROFILE: |
|
|
|
|
@ -2855,7 +2754,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $data |
|
|
|
|
'value' => $data, |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
case ExtraField::FIELD_TYPE_SELECT_WITH_TEXT_FIELD: |
|
|
|
|
@ -2874,7 +2773,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $parsedData[1] |
|
|
|
|
'value' => $parsedData[1], |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
case ExtraField::FIELD_TYPE_TRIPLE_SELECT: |
|
|
|
|
@ -2893,7 +2792,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => implode(' ', $optionValues) |
|
|
|
|
'value' => implode(' ', $optionValues), |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
@ -2912,7 +2811,7 @@ class SocialManager extends UserManager |
|
|
|
|
$extraFieldItem = [ |
|
|
|
|
'variable' => $extraFieldInfo['variable'], |
|
|
|
|
'label' => ucfirst($extraFieldInfo['display_text']), |
|
|
|
|
'value' => $data |
|
|
|
|
'value' => $data, |
|
|
|
|
]; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
@ -3143,7 +3042,7 @@ class SocialManager extends UserManager |
|
|
|
|
Session::erase('forum_notification'); |
|
|
|
|
|
|
|
|
|
$threadUrlBase = api_get_path(WEB_CODE_PATH).'forum/viewthread.php?'.http_build_query([ |
|
|
|
|
'cidReq' => $courseInfo['code'] |
|
|
|
|
'cidReq' => $courseInfo['code'], |
|
|
|
|
]).'&'; |
|
|
|
|
if (isset($notification['thread']) && !empty($notification['thread'])) { |
|
|
|
|
$threadList = array_filter(array_unique($notification['thread'])); |
|
|
|
|
@ -3176,4 +3075,104 @@ class SocialManager extends UserManager |
|
|
|
|
|
|
|
|
|
return $threads; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the formatted header message post. |
|
|
|
|
* |
|
|
|
|
* @param int $authorInfo |
|
|
|
|
* @param int $receiverInfo |
|
|
|
|
* @param array $message Message data |
|
|
|
|
* |
|
|
|
|
* @return string $html The formatted header message post |
|
|
|
|
*/ |
|
|
|
|
private static function headerMessagePost($authorInfo, $receiverInfo, $message) |
|
|
|
|
{ |
|
|
|
|
$currentUserId = api_get_user_id(); |
|
|
|
|
$iconStatus = null; |
|
|
|
|
$authorId = (int) $authorInfo['user_id']; |
|
|
|
|
$receiverId = (int) $receiverInfo['user_id']; |
|
|
|
|
$userStatus = $authorInfo['status']; |
|
|
|
|
$urlImg = api_get_path(WEB_IMG_PATH); |
|
|
|
|
$isAdmin = self::is_admin($authorId); |
|
|
|
|
|
|
|
|
|
if ($userStatus == 5) { |
|
|
|
|
if ($authorInfo['has_certificates']) { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_graduated.svg" width="22px" height="22px">'; |
|
|
|
|
} else { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_student.svg" width="22px" height="22px">'; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if ($userStatus == 1) { |
|
|
|
|
if ($isAdmin) { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_admin.svg" width="22px" height="22px">'; |
|
|
|
|
} else { |
|
|
|
|
$iconStatus = '<img class="pull-left" src="'.$urlImg.'icons/svg/ofaj_teacher.svg" width="22px" height="22px">'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$date = Display::dateToStringAgoAndLongDate($message['send_date']); |
|
|
|
|
$avatarAuthor = $authorInfo['avatar']; |
|
|
|
|
$urlAuthor = api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$authorId; |
|
|
|
|
$nameCompleteAuthor = $authorInfo['complete_name']; |
|
|
|
|
|
|
|
|
|
$urlReceiver = api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$receiverId; |
|
|
|
|
$nameCompleteReceiver = $receiverInfo['complete_name']; |
|
|
|
|
|
|
|
|
|
$htmlReceiver = ''; |
|
|
|
|
if ($authorId !== $receiverId) { |
|
|
|
|
$htmlReceiver = ' > <a href="'.$urlReceiver.'">'.$nameCompleteReceiver.'</a> '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!empty($message['group_info'])) { |
|
|
|
|
$htmlReceiver = ' > <a href="'.$message['group_info']['url'].'">'.$message['group_info']['name'].'</a> '; |
|
|
|
|
} |
|
|
|
|
$canEdit = ($currentUserId == $authorInfo['user_id'] || $currentUserId == $receiverInfo['user_id']) && empty($message['group_info']); |
|
|
|
|
|
|
|
|
|
if (!empty($message['thread_id'])) { |
|
|
|
|
$htmlReceiver = ' > <a href="'.$message['thread_url'].'">'.$message['forum_title'].'</a> '; |
|
|
|
|
$canEdit = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$postAttachment = self::getPostAttachment($message); |
|
|
|
|
|
|
|
|
|
$html = ''; |
|
|
|
|
$html .= '<div class="top-mediapost">'; |
|
|
|
|
if ($canEdit) { |
|
|
|
|
$htmlDelete = Display::url( |
|
|
|
|
Display::returnFontAwesomeIcon('trash'), |
|
|
|
|
'javascript:void(0)', |
|
|
|
|
[ |
|
|
|
|
'id' => 'message_'.$message['id'], |
|
|
|
|
'title' => get_lang('SocialMessageDelete'), |
|
|
|
|
'onclick' => 'deleteMessage('.$message['id'].')', |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
$html .= '<div class="pull-right deleted-mgs">'; |
|
|
|
|
$html .= $htmlDelete; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$html .= '<div class="user-image" >'; |
|
|
|
|
$html .= '<a href="'.$urlAuthor.'"> |
|
|
|
|
<img class="avatar-thumb" src="'.$avatarAuthor.'" alt="'.$nameCompleteAuthor.'"></a>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '<div class="user-data">'; |
|
|
|
|
$html .= $iconStatus; |
|
|
|
|
$html .= '<div class="username"><a href="'.$urlAuthor.'">'.$nameCompleteAuthor.'</a>'.$htmlReceiver.'</div>'; |
|
|
|
|
$html .= '<div>'.$date.'</div>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '<div class="msg-content">'; |
|
|
|
|
$html .= '<div class="post-attachment" >'; |
|
|
|
|
$html .= $postAttachment; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '<p>'.Security::remove_XSS($message['content']).'</p>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= '</div>'; // end mediaPost |
|
|
|
|
|
|
|
|
|
// Popularity post functionality |
|
|
|
|
$html .= '<div class="popularity-mediapost"></div>'; |
|
|
|
|
|
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|