Moving code inside a class, use FormValidator, fix fatal error.

1.10.x
Julio Montoya 11 years ago
parent 5c22af943c
commit 4cdbcf2033
  1. 189
      main/inc/lib/social.lib.php
  2. 102
      main/social/profile.php

@ -11,6 +11,9 @@
*/
class SocialManager extends UserManager
{
/**
* Constructor
*/
public function __construct()
{
@ -25,7 +28,8 @@ class SocialManager extends UserManager
{
$friend_relation_list = array();
$tbl_my_friend_relation_type = Database :: get_main_table(TABLE_MAIN_USER_FRIEND_RELATION_TYPE);
$sql = 'SELECT id,title FROM '.$tbl_my_friend_relation_type.' WHERE id<>6 ORDER BY id ASC';
$sql = 'SELECT id,title FROM '.$tbl_my_friend_relation_type.'
WHERE id<>6 ORDER BY id ASC';
$result = Database::query($sql);
while ($row = Database::fetch_array($result, 'ASSOC')) {
$friend_relation_list[] = $row;
@ -100,14 +104,23 @@ class SocialManager extends UserManager
$tbl_my_friend = Database :: get_main_table(TABLE_MAIN_USER_REL_USER);
$tbl_my_user = Database :: get_main_table(TABLE_MAIN_USER);
$sql = 'SELECT friend_user_id FROM '.$tbl_my_friend.'
WHERE relation_type NOT IN ('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND friend_user_id<>'.((int) $user_id).' AND user_id='.((int) $user_id);
WHERE
relation_type NOT IN ('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND
friend_user_id<>'.((int) $user_id).' AND
user_id='.((int) $user_id);
if (isset($id_group) && $id_group > 0) {
$sql.=' AND relation_type='.$id_group;
}
if (isset($search_name)) {
$search_name = trim($search_name);
$search_name = str_replace(' ', '', $search_name);
$sql.=' AND friend_user_id IN (SELECT user_id FROM '.$tbl_my_user.' WHERE firstName LIKE "%'.Database::escape_string($search_name).'%" OR lastName LIKE "%'.Database::escape_string($search_name).'%" OR '.(api_is_western_name_order() ? 'concat(firstName, lastName)' : 'concat(lastName, firstName)').' like concat("%","'.Database::escape_string($search_name).'","%") ) ';
$sql.=' AND friend_user_id IN (
SELECT user_id FROM '.$tbl_my_user.'
WHERE
firstName LIKE "%'.Database::escape_string($search_name).'%" OR
lastName LIKE "%'.Database::escape_string($search_name).'%" OR
'.(api_is_western_name_order() ? 'concat(firstName, lastName)' : 'concat(lastName, firstName)').' LIKE concat("%","'.Database::escape_string($search_name).'","%")
) ';
}
$res = Database::query($sql);
@ -144,7 +157,12 @@ class SocialManager extends UserManager
$list_ids = self::get_friends($user_id, $id_group, $search_name);
if (is_array($list_ids)) {
foreach ($list_ids as $values_ids) {
$list_path_image_friend[] = UserManager::get_user_picture_path_by_id($values_ids['friend_user_id'], 'web', false, true);
$list_path_image_friend[] = UserManager::get_user_picture_path_by_id(
$values_ids['friend_user_id'],
'web',
false,
true
);
$combine_friend = array(
'id_friend' => $list_ids,
'path_friend' => $list_path_image_friend
@ -202,7 +220,11 @@ class SocialManager extends UserManager
$now = api_get_utc_datetime();
$sql_exist = 'SELECT COUNT(*) AS count FROM '.$tbl_message.'
WHERE user_sender_id='.$user_id.' AND user_receiver_id='.$friend_id.' AND msg_status IN(5,6,7);';
WHERE
user_sender_id='.$user_id.' AND
user_receiver_id='.$friend_id.' AND
msg_status IN(5,6,7);
';
$res_exist = Database::query($sql_exist);
$row_exist = Database::fetch_array($res_exist, 'ASSOC');
@ -251,7 +273,9 @@ class SocialManager extends UserManager
{
$tbl_message = Database::get_main_table(TABLE_MAIN_MESSAGE);
$sql = 'SELECT COUNT(*) as count_message_in_box FROM '.$tbl_message.'
WHERE user_receiver_id='.intval($user_receiver_id).' AND msg_status='.MESSAGE_STATUS_INVITATION_PENDING;
WHERE
user_receiver_id='.intval($user_receiver_id).' AND
msg_status='.MESSAGE_STATUS_INVITATION_PENDING;
$res = Database::query($sql);
$row = Database::fetch_array($res, 'ASSOC');
return $row['count_message_in_box'];
@ -268,7 +292,9 @@ class SocialManager extends UserManager
$tbl_message = Database::get_main_table(TABLE_MAIN_MESSAGE);
$sql = 'SELECT user_sender_id,send_date,title,content
FROM '.$tbl_message.'
WHERE user_receiver_id='.intval($user_id).' AND msg_status = '.MESSAGE_STATUS_INVITATION_PENDING;
WHERE
user_receiver_id='.intval($user_id).' AND
msg_status = '.MESSAGE_STATUS_INVITATION_PENDING;
$res = Database::query($sql);
$list_friend_invitation = array();
while ($row = Database::fetch_array($res, 'ASSOC')) {
@ -420,7 +446,11 @@ class SocialManager extends UserManager
if (!empty($rss->items)) {
$icon_rss = '';
if (!empty($feed)) {
$icon_rss = Display::url(Display::return_icon('social_rss.png', '', array(), 22), Security::remove_XSS($feed['rssfeeds']), array('target' => '_blank'));
$icon_rss = Display::url(
Display::return_icon('social_rss.png', '', array(), 22),
Security::remove_XSS($feed['rssfeeds']),
array('target' => '_blank')
);
}
$res .= '<h3 class="title-rss">'.$icon_rss.' '.$rss->channel['title'].'</h3>';
@ -1218,23 +1248,22 @@ class SocialManager extends UserManager
$start = '0000-00-00';
}
$tblMessage = Database::get_main_table(TABLE_MAIN_MESSAGE);
$tblMessageAttachement = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
$userId = intval($userId);
$start = Database::escape_string($start);
// TODO: set a maximum of 3 months for messages
//if ($start == '0000-00-00') {
//
//}
$limit = intval($limit);
$messages = array();
$sql = "SELECT id, user_sender_id,user_receiver_id, send_date, content, parent_id,
(SELECT ma.path from message_attachment ma WHERE ma.message_id = tm.id ) as path,
(SELECT ma.filename from message_attachment ma WHERE ma.message_id = tm.id ) as filename
FROM $tblMessage tm
WHERE user_receiver_id = $userId
(SELECT ma.path FROM $tblMessageAttachement ma WHERE ma.message_id = tm.id ) as path,
(SELECT ma.filename FROM $tblMessageAttachement ma WHERE ma.message_id = tm.id ) as filename
FROM $tblMessage tm
WHERE user_receiver_id = $userId
AND send_date > '$start' ";
$sql .= (empty($messageStatus) || is_null($messageStatus)) ? '' : " AND msg_status = '$messageStatus' ";
$sql .= (empty($parentId) || is_null($parentId)) ? '' : " AND parent_id = '$parentId' ";
$sql .= " ORDER BY send_date DESC LIMIT $offset, $limit ";
$messages = array();
$res = Database::query($sql);
if (Database::num_rows($res) > 0) {
while ($row = Database::fetch_array($res)) {
@ -1284,7 +1313,7 @@ class SocialManager extends UserManager
if ($isOwnWall) {
$media .= '<div class="pull-right deleted-mgs">';
$media .= '<a title="'.get_lang("SocialMessageDelete").'" href="'.api_get_path(WEB_CODE_PATH).'social/profile.php?messageId='.
$message['id'].'">'.get_lang('x').'</a>';
$message['id'].'">x</a>';
$media .= '</div>';
}
$media .= '<div class="user-image">';
@ -1404,11 +1433,10 @@ class SocialManager extends UserManager
$wallImage = '<a class="thumbnail ajax" href="'.$imageBig.'"><img src="'.$imageSmall.'"></a>';
}
$htmlDelete = '';
if ($isOwnWall) {
$htmlDelete .= '<a title="'.get_lang("SocialMessageDelete").'" href="'.api_get_path(WEB_CODE_PATH).'social/profile.php?messageId='.
$message['id'].'">'.get_lang('x').'</a>';
$message['id'].'">x</a>';
}
$html = '';
@ -1523,6 +1551,7 @@ class SocialManager extends UserManager
/**
* Generate the social block for a user
* @param Template $template
* @param int $userId The user id
* @param string $groupBlock Optional. Highlight link possible values:
* group_add, home, messages, messages_inbox, messages_compose,
@ -1530,7 +1559,7 @@ class SocialManager extends UserManager
* @param int $groupId Optional. Group ID
* @return string The HTML code with the social block
*/
public static function setSocialUserBlock($template, $userId, $groupBlock = '', $groupId = 0)
public static function setSocialUserBlock(Template $template, $userId, $groupBlock = '', $groupId = 0)
{
if (api_get_setting('allow_social_tool') != 'true') {
return '';
@ -1548,4 +1577,122 @@ class SocialManager extends UserManager
$template->assign('profileEditionLink', $profileEditionLink);
$template->assign('social_avatar_block', $template->fetch('default/social/user_block.tpl'));
}
/**
* @param $user_id
* @param $link_shared
* @param $show_full_profile
* @return string
*/
public static function listMyFriends($user_id, $link_shared, $show_full_profile)
{
//SOCIALGOODFRIEND , USER_RELATION_TYPE_FRIEND, USER_RELATION_TYPE_PARENT
$friends = SocialManager::get_friends($user_id, USER_RELATION_TYPE_FRIEND);
$number_of_images = 30;
$number_friends = count($friends);
$friendHtml = '<div class="nav-list"><h3>'.get_lang('SocialFriend').'<span>(' . $number_friends . ')</span></h3></div>';
if ($number_friends != 0) {
if ($number_friends > $number_of_images) {
if (api_get_user_id() == $user_id) {
$friendHtml.= ' : <span><a href="friends.php">'.get_lang('SeeAll').'</a></span>';
} else {
$friendHtml.= ' : <span>'
.'<a href="'.api_get_path(WEB_CODE_PATH).'social/profile_friends_and_groups.inc.php'
.'?view=friends&height=390&width=610&user_id='.$user_id.'"'
.'class="ajax" title="'.get_lang('SeeAll').'" >'.get_lang('SeeAll').'</a></span>';
}
}
$friendHtml.= '<ul class="nav nav-list">';
$j = 1;
for ($k=0; $k < $number_friends; $k++) {
if ($j > $number_of_images) break;
if (isset($friends[$k])) {
$friend = $friends[$k];
$name_user = api_get_person_name($friend['firstName'], $friend['lastName']);
$user_info_friend = api_get_user_info($friend['friend_user_id'], true);
if ($user_info_friend['user_is_online']) {
$statusIcon = Display::span('', array('class' => 'online_user_in_text'));
} else {
$statusIcon = Display::span('', array('class' => 'offline_user_in_text'));
}
$friendHtml.= '<li class="">';
// the height = 92 must be the same in the image_friend_network span style in default.css
$friends_profile = SocialManager::get_picture_user($friend['friend_user_id'], $friend['image'], 20, USER_IMAGE_SIZE_SMALL);
$friendHtml.= '<img src="'.$friends_profile['file'].'" id="imgfriend_'.$friend['friend_user_id'].'" title="'.$name_user.'"/>';
$link_shared = (empty($link_shared)) ? '' : '&'.$link_shared;
$friendHtml.= $statusIcon .'<a href="profile.php?' .'u=' . $friend['friend_user_id'] . $link_shared . '">' . $name_user .'</a>';
$friendHtml.= '</li>';
}
$j++;
}
$friendHtml.='</ul>';
} else {
$friendHtml.= '<div class="">'.get_lang('NoFriendsInYourContactList').'<br />'
.'<a class="btn" href="'.api_get_path(WEB_PATH).'whoisonline.php">'. get_lang('TryAndFindSomeFriends').'</a></div>';
}
return $friendHtml;
}
/**
* @return string
*/
public static function getWallForm()
{
$form = new FormValidator(
'social_wall_main',
'post',
api_get_path(WEB_CODE_PATH).'social/profile.php',
null,
array('enctype' => 'multipart/form-data')
);
$form->addTextarea('social_wall_new_msg_main', null, array('placeholder' => get_lang('SocialWallWhatAreYouThinkingAbout')));
$form->addButtonSend(get_lang('Post'));
$html = Display::panel($form->returnForm(), get_lang('SocialWall'));
return $html;
$html = '<div class="panel panel-default social-wall">';
$html .= '<div class="panel-heading">' . get_lang('SocialWall') . '</div>';
$html .= '<div class="panel-body">';
$html .=
'<form name="social_wall_main" method="POST" enctype="multipart/form-data">
<label for="social_wall_new_msg_main" class="hide">' . get_lang('SocialWallWhatAreYouThinkingAbout') . '</label>
<textarea name="social_wall_new_msg_main" rows="2" cols="80" style="width: 98%" placeholder="'.get_lang('SocialWallWhatAreYouThinkingAbout').'"></textarea>
<br />
<input class="" name="picture" type="file" accept="image/*" style="width:80%;">
<button type="submit" name="social_wall_new_msg_main_submit" class="pull-right btn btn-success" />
<i class="fa fa-pencil"></i> '.get_lang('Post').'</button>
</form>';
$html.= '</div></div>';
return $html;
}
/**
* @param int $userId
* @param int $friendId
* @return string
*/
public static function getWallMessagesByUser($userId, $friendId)
{
$messages = SocialManager::getWallMessagesPostHTML($userId, $friendId);
$html = '';
foreach ($messages as $message) {
$post = $message['html'];
$comment = SocialManager::getWallMessagesHTML($userId, $friendId, $message['id']);
$html .= $post.$comment;
}
return $html;
}
}

@ -236,7 +236,7 @@ foreach ($sessionList as $session) {
}
// My friends
$friend_html = listMyFriends($user_id, $link_shared ,$show_full_profile);
$friend_html = SocialManager::listMyFriends($user_id, $link_shared ,$show_full_profile);
$social_left_content = '<div class="well sidebar-nav">' .$friend_html . '</div>';
/*
@ -281,11 +281,11 @@ if ($show_full_profile) {
*/
//Social Block Wall
$wallSocialAddPost = wallSocialAddPost();
$wallSocialAddPost = SocialManager::getWallForm();
$social_wall_block = $wallSocialAddPost;
//Social Post Wall
$post_wall = wallSocialPost($my_user_id,$friendId) ;
$post_wall = SocialManager::getWallMessagesByUser($my_user_id, $friendId) ;
$social_post_wall_block = '<div class="panel panel-default social-post">';
$social_post_wall_block .= '<div class="panel-heading">Mis publicaciones</div>';
$social_post_wall_block .='<div class="panel-body">';
@ -749,99 +749,3 @@ $tpl->assign('formModals', $formModals);
$social_layout = $tpl->get_template('social/profile.tpl');
$tpl->display($social_layout);
/*
* function list my friends
*/
function listMyFriends($user_id, $link_shared, $show_full_profile)
{
//SOCIALGOODFRIEND , USER_RELATION_TYPE_FRIEND, USER_RELATION_TYPE_PARENT
$friends = SocialManager::get_friends($user_id, USER_RELATION_TYPE_FRIEND);
$friendHtml = '';
$number_of_images = 30;
$number_friends = 0;
$number_friends = count($friends);
$friendHtml = '<div class="nav-list"><h3>'.get_lang('SocialFriend').'<span>(' . $number_friends . ')</span></h3></div>';
if ($number_friends != 0) {
if ($number_friends > $number_of_images) {
if (api_get_user_id() == $user_id) {
$friendHtml.= ' : <span><a href="friends.php">'.get_lang('SeeAll').'</a></span>';
} else {
$friendHtml.= ' : <span>'
.'<a href="'.api_get_path(WEB_CODE_PATH).'social/profile_friends_and_groups.inc.php'
.'?view=friends&height=390&width=610&user_id='.$user_id.'"'
.'class="ajax" title="'.get_lang('SeeAll').'" >'.get_lang('SeeAll').'</a></span>';
}
}
$friendHtml.= '<ul class="nav nav-list">';
$j = 1;
for ($k=0; $k < $number_friends; $k++) {
if ($j > $number_of_images) break;
if (isset($friends[$k])) {
$friend = $friends[$k];
$name_user = api_get_person_name($friend['firstName'], $friend['lastName']);
$user_info_friend = api_get_user_info($friend['friend_user_id'], true);
if ($user_info_friend['user_is_online']) {
$statusIcon = Display::span('', array('class' => 'online_user_in_text'));
} else {
$statusIcon = Display::span('', array('class' => 'offline_user_in_text'));
}
$friendHtml.= '<li class="">';
// the height = 92 must be the sqme in the image_friend_network span style in default.css
$friends_profile = SocialManager::get_picture_user($friend['friend_user_id'], $friend['image'], 20, USER_IMAGE_SIZE_SMALL);
$friendHtml.= '<img src="'.$friends_profile['file'].'" id="imgfriend_'.$friend['friend_user_id'].'" title="'.$name_user.'"/>';
$link_shared = (empty($link_shared)) ? '' : '&'.$link_shared;
$friendHtml.= $statusIcon .'<a href="profile.php?' .'u=' . $friend['friend_user_id'] . $link_shared . '">' . $name_user .'</a>';
$friendHtml.= '</li>';
}
$j++;
}
$friendHtml.='</ul>';
} else {
$friendHtml.= '<div class="">'.get_lang('NoFriendsInYourContactList').'<br />'
.'<a class="btn" href="'.api_get_path(WEB_PATH).'whoisonline.php">'. get_lang('TryAndFindSomeFriends').'</a></div>';
}
return $friendHtml;
}
function wallSocialAddPost()
{
$html = '<div class="panel panel-default social-wall">';
$html .= '<div class="panel-heading">' . get_lang('SocialWall') . '</div>';
$html .= '<div class="panel-body">';
$html .=
'<form name="social_wall_main" method="POST" enctype="multipart/form-data">
<label for="social_wall_new_msg_main" class="hide">' . get_lang('SocialWallWhatAreYouThinkingAbout') . '</label>
<textarea name="social_wall_new_msg_main" rows="2" cols="80" style="width: 98%" placeholder="'.get_lang('SocialWallWhatAreYouThinkingAbout').'"></textarea>
<br />
<input class="" name="picture" type="file" accept="image/*" style="width:80%;">
<button type="submit" name="social_wall_new_msg_main_submit" class="pull-right btn btn-success" />
<i class="fa fa-pencil"></i> '.get_lang('Post').'</button>
</form>';
$html.= '</div></div>';
return $html;
}
function wallSocialPost($userId, $friendId)
{
$array = SocialManager::getWallMessagesPostHTML($userId, $friendId);
$html = '';
for($i = 0; $i < count($array); $i++) {
$post = $array[$i]['html'];
$comment = SocialManager::getWallMessagesHTML($userId, $friendId, $array[$i]['id']);
$html .= $post.$comment;
}
return $html;
}

Loading…
Cancel
Save