1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Как сделать вывод друзей в профиле как в контакте?

Discussion in 'Прочая Поддержка - Help Requests' started by Qwert911, Oct 23, 2010.

  1. Qwert911 Thread starter Active member


    Offline
    Message Count:
    137
    Likes Received:
    0
    My version of SE:
    3.19
    Нужен мод благодаря которому я бы смог вывести друзей пользователя и друзей которые в онлайне в боковую часть профиля как в контакте. Все кто знает помогите, а то пользователям не интересно в стандартном варианте, мне действительно очень нужна Ваша помощь!!!! Сайт работает на третей ветке.
  2. Sultan Novice member


    Offline
    Message Count:
    32
    Likes Received:
    0
    Можно просто взять код который отвечает за вывод друзей пользователя и его друзей онлайн и вывести в боковой панели + естественно повозиться с самим кодом и со стилями...НО!!!...все я как то делал но отказался...Во-первых, скажем выведешь ты там 6 друзей как в контакте и пристыкуешь сверху кнопочку Все друзья которая будет вести на страничку соответственно всех друзей...но у тебя всегда будут выводиться в боковой панели одни и те же друзья...пока ты не добавишь еще кого нить и соответственно его фотка будет на самом первом месте красоваться , т.к нет вывода друзей в беспорядке (случайного)...вывод осуществляеться в строгом порядке их добавления...я искал но не нашел как сделать чтобы вывести их в случайном порядке! если найдешь к третьей и она будет работать то можно...с друзьями онлайн ваще нет проблем...я до нее не дошел но эт проще и да нужно...нах лезть в подменюшку и смотреть кто там онлайн!
  3. Qwert911 Thread starter Active member


    Offline
    Message Count:
    137
    Likes Received:
    0
    My version of SE:
    3.19
    Я нашёл хак

    В profile.tpl под:

    PHP код:
    {* END STATS *}
    вот это:

    PHP код:
    {* SHOW ONLINE FRIENDS IF MORE THAN ZERO *}
    {math assign='total_online_friends' equation="x+y" x=$online_friends[0]|@count y=$online_friends[1]}

    {if $online_friends[0]|@count == 0}

    {else}

    {section name=online_loop loop=$online_friends[0]}
    <div style="width:90px; height:100%; padding:5px; padding-bottom:0; bottom:0px; float:left; text-align:center;"> <a href='{$url->url_create("profile", $online_friends[0][online_loop]->user_info.user_username)}'> <img align='bottom' src='{$online_friends[0][online_loop]->user_photo('./images/nophoto.gif')}' width='{$misc->photo_size($online_friends[0][online_loop]->user_photo('./images/nophoto.gif'),'90','90','w')}' border='0' alt="{$online_friends[0][online_loop]->user_displayname}"></a> <a href='{$url->url_create("profile", $online_friends[0][online_loop]->user_info.user_username)}'>{$online_friends[0][online_loop]->user_displayname|truncate:50:"...":true}</a> </div>
    {/section}
    {$online_friends_registered}
    {/if}
    в profile.php под:

    PHP код:
    // ASSIGN SMARTY VARS AND INCLUDE FOOTER
    вот это:

    PHP код:
    $smarty->assign('online_friends', online_friends());


    и в functions_general.php, внутри директории 'include' на 368строке стандартно, перед

    PHP код:
    // END censor() FUNCTION
    вот это:

    PHP код:
    // THIS FUNCTION RETURNS AN ARRAY CONTAINING THE USERNAMES OF ONLINE FRIENDS
    // INPUT:
    // OUTPUT: AN ARRAY OF USERNAMES FOR FRIENDS CURRENTLY ACTIVE IN THE SYSTEM
    function online_friends() {
    global $database, $user;

    // GET LOGGED IN FRIENDS ONLINE
    $onlinefriends_array = Array();
    $online_time = time()-60*60;
    $online_friends = $database->database_query("SELECT u.user_username, u.user_fname, u.user_lname, u.user_id, u.user_photo
    FROM se_users u
    INNER JOIN se_friends f ON f.friend_user_id2=u.user_id WHERE f.friend_user_id1='{$user->user_info['user_id']}'
    && u.user_lastactive > '$online_time' AND u.user_invisible=0 ORDER BY u.user_lastactive DESC LIMIT 2000")
    or die($database->database_error());
    while($online_friend_info = $database->database_fetch_assoc($online_friends)) {
    $online_friend = new se_user();
    $online_friend->user_info[user_id] = $online_friend_info[user_id];
    $online_friend->user_info[user_username] = $online_friend_info[user_username];
    $online_friend->user_info[user_fname] = $online_friend_info[user_fname];
    $online_friend->user_info[user_lname] = $online_friend_info[user_lname];
    $online_friend->user_info[user_photo] = $online_friend_info[user_photo];
    $online_friend->user_displayname();

    // SET ONLINE FRIENDS ARRAY
    $onlinefriends_array[] = $online_friend;
    $onlinefriends_usernames[] = $online_friend->user_info[user_username];
    }

    // GET VISITORS ONLINE
    $total_visitors = 0;

    return Array($onlinefriends_array, $total_visitors, $onlinefriends_usernames);
    } // END online_friends() FUNCTION


    НО У НЕГО ГЛЮК ! Если пользователь переходит на страницу другого чела там отображаются друзья пользователя А НЕ ВЛАДЕЛЬЦА СТРАНИЦЫ!!! КТО ПОДСКАЖЕТ РЕШЕНИЕ?

    ВЕДЬ НА ФОРУМЕ СТОЛЬКО ПРОФАНОВ И СПЕЦОВ
  4. Sultan Novice member


    Offline
    Message Count:
    32
    Likes Received:
    0
    Ты имеешь ввиду тебе надо чтобы показывались друзья онлайн пользователя на странице которого ты ходишь!?..а там твои показываються?
  5. Qwert911 Thread starter Active member


    Offline
    Message Count:
    137
    Likes Received:
    0
    My version of SE:
    3.19
    Верно.... Именно об этом я написал.
  6. Dracosha Novice member


    Offline
    Message Count:
    19
    Likes Received:
    0
    в profile.tpl

    <!---------------------------------------------------------------------------->
    {* ДРУЗЬЯ БЛОГ ОНЛАЙН*}
    <table cellpadding='0' cellspacing='0' style='margin-bottom: 10px; width: 230px;'>
    <tr><td class='header'>
    Друзья онлайн
    </td></tr>
    <tr>
    <td class='profile'>
    {if $online_friends[2] != 0}
    {section name=online_loop loop=$online_friends[0] max=9}
    <div class='profile_friend_photo' style='margin-left:9px; margin-right:9px; margin-top:8px; width:50px;'>

    <a href='{$url->url_create('profile', $online_friends[0][online_loop]->user_info.user_username)}'>
    <img src='{$online_friends[0][online_loop]->user_photo('./images/nophoto.gif', TRUE)}' class='photo' width='50'>
    </a>
    <div align="center">
    <a href='{$url->url_create("profile",$online_friends[0][online_loop]->user_info.user_username)}'>{$online_friends[0][online_loop]->user_displayname}
    </a></div>
    </div>
    {/section}
    {/if}
    </td>
    </tr>
    </table>
    {* ДРУЗЬЯ БЛОГ ОНЛАЙН *}
    <!---------------------------------------------------------------------------->
  7. Qwert911 Thread starter Active member


    Offline
    Message Count:
    137
    Likes Received:
    0
    My version of SE:
    3.19
    Это нужно добавить вместо

    {* SHOW ONLINE FRIENDS IF MORE THAN ZERO *}
    {math assign='total_online_friends' equation="x+y" x=$online_friends[0]|@count y=$online_friends[1]}

    {if $online_friends[0]|@count == 0}

    {else}

    {section name=online_loop loop=$online_friends[0]}
    <div style="width:90px; height:100%; padding:5px; padding-bottom:0; bottom:0px; float:left; text-align:center;"> <a href='{$url->url_create("profile", $online_friends[0][online_loop]->user_info.user_username)}'> <img align='bottom' src='{$online_friends[0][online_loop]->user_photo('./images/nophoto.gif')}' width='{$misc->photo_size($online_friends[0][online_loop]->user_photo('./images/nophoto.gif'),'90','90','w')}' border='0' alt="{$online_friends[0][online_loop]->user_displayname}"></a> <a href='{$url->url_create("profile", $online_friends[0][online_loop]->user_info.user_username)}'>{$online_friends[0][online_loop]->user_displayname|truncate:50:"...":true}</a> </div>
    {/section}
    {$online_friends_registered}
    {/if}

    ?????
  8. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    нет, разная разметка, не ужели не заметно:
    PHP:
    <table cellpadding='0' cellspacing='0' style='margin-bottom: 10px; width: 230px;'>
    и
    PHP:
    <div style="width:90px; height:100%; padding:5px; padding-bottom:0; bottom:0px; float:left; text-align:center;">
  9. Qwert911 Thread starter Active member


    Offline
    Message Count:
    137
    Likes Received:
    0
    My version of SE:
    3.19
    Я в начале тоже так подумал и поставил код в profile.tpl В результате на странице профиля появился прямоугольник с вопросиками! Вот и засомневался, возможно я что то не до понял!!!
  10. Sultan Novice member


    Offline
    Message Count:
    32
    Likes Received:
    0
    Гилтониэль что именно нельзя...вывод друзей в профиле как в контакте?...я сделал!(ВЫЛОЖУ ПОЗЖЕ...кое что над доделать...вообще все по аналогии прост стилями пришлось помучиться и в коде tpl)...только как отмечалось выше нельзя чтобы онлайн друзья показывались тех пользователей страничку которых посещаешь!...во первых надо копать в код php во-вторых, нужна наверно приватность...а может я нихочу выводить и показывать своих друзей онлайн....кстати про приватность друзей...ОНА есть! я чет ненашел...

    ---------- Сообщение добавлено в 09:11 ---------- Предыдущее сообщение было в 07:46 ----------

    Скажите пожалуйста вот я код отвечающий за вывод друзей онлайн воткнул в левый блок и там есть такой вот код...
    {if $online_friends[0]|@count == 0}
    {lang_sprintf id=977 1=$online_friends[1]}
    {else}

    Я так понимаю он зачем то нужен... id=977 отвечает за гостей $s

    ---------- Сообщение добавлено в 11:46 ---------- Предыдущее сообщение было в 09:11 ----------

    Ну кажись так вот можно показать друзей онлайн на страницах пользователей не своих а ихних))) в коде

    в functions_general.php


    function online_friends() {
    global $database, $user;

    меняем на

    function online_friends() {
    global $database, $owner;

    далее ищем ниже

    FROM se_users u
    INNER JOIN se_friends f ON f.friend_user_id2=u.user_id WHERE f.friend_user_id1='{$user->user_info['user_id']}'


    и меняем на

    FROM se_users u
    INNER JOIN se_friends f ON f.friend_user_id2=u.user_id WHERE f.friend_user_id1='{$owner->user_info['user_id']}'


    ПРОБУЕМ!!! ГОВОРИМ СПАСИБО!!!

Share This Page

All rights reserved SocEngine.ru ©