Jump to content

[Модуль] Новые друзья By Kir KMS


Recommended Posts

 

Всем привет.

Этот модуль я писал ещё давно, а точнее начинал писать и не доделал.

Вот сегодня решил допилить его и выложить вам.

Модуль сортирует список друзей по дате добавления. Сначала выводит новых друзья.

За пример был взят всеми любимый Вк.

image.png

 

Этапы установки под спойлером

Спойлер

 

Зайти в файл  .htaccess

Найти там строку RewriteRule ^friends(/?)+$ index.php?go=friends [L]

Вставить сразу после неё

RewriteRule ^friends/recent(/?)+$ index.php?go=friends&act=recent [L]

 

Зайти в файл \system\modules\friends.php 

Найти несколько раз сроку 

$tpl->set_block("'\\[online-friends\\](.*?)\\[/online-friends\\]'si","");

 

Вставить сразу после неё

$tpl->set_block("'\\[recent-friends\\](.*?)\\[/recent-friends\\]'si","");

Найти там строку //################### Загрузка друзей в окне для выбора СП ###################//

Вставить выше неё

 //################### Страница Новых Друзей By Kir KMS ###################//
        case "recent":
            $mobile_speedbar = 'Новые друзья';

            $user_id = $user_info['user_id'];
            
            //Верх
            $tpl->load_template('friends/head.tpl');
            $tpl->set('{user-id}', $user_id);
            
            if($user_info['user_friends_demands'])
                $tpl->set('{demands}', '('.$user_info['user_friends_demands'].')');
            else
                $tpl->set('{demands}', '');
            
            $tpl->set('[recent-friends]', '');
            $tpl->set('[/recent-friends]', '');
            $tpl->set_block("'\\[all-friends\\](.*?)\\[/all-friends\\]'si","");
            $tpl->set_block("'\\[online-friends\\](.*?)\\[/online-friends\\]'si","");
            $tpl->set_block("'\\[request-friends\\](.*?)\\[/request-friends\\]'si","");
            $tpl->compile('info');
            
            //Выводим друзья если они есть
               // $sql_ = $db->super_query("SELECT tb1.friend_id, tb2.user_birthday, user_photo, user_search_pref, user_country_city_name, user_last_visit, user_logged_mobile FROM `".PREFIX."_friends` tb1, `".PREFIX."_users` tb2 WHERE tb1.user_id = '{$user_id}' AND tb1.friend_id = tb2.user_id ORDER by friends_date DESC LIMIT {$limit_page}, {$gcount}", 1);
                $sql_ = $db->super_query("SELECT tb1.friend_id, tb2.user_birthday, user_photo, user_search_pref, user_country_city_name, user_last_visit, user_logged_mobile FROM `".PREFIX."_friends` tb1, `".PREFIX."_users` tb2 WHERE tb1.user_id = '{$user_id}' AND tb1.friend_id = tb2.user_id AND tb1.friend_id != '{$user_id}' ORDER by friends_date DESC LIMIT {$limit_page}, {$gcount}", 1);
                if($sql_){
                $tpl->load_template('friends/recent.tpl');
                foreach($sql_ as $row){
                    $user_country_city_name = explode('|', $row['user_country_city_name']);
                    $tpl->set('{country}', $user_country_city_name[0]);
                    $tpl->set('{city}', ', '.$user_country_city_name[1]);
                    $tpl->set('{user-id}', $row['friend_id']);
                    $tpl->set('{name}', $row['user_search_pref']);
                    
                    // FOR MOBILE VERSION 1.0
                    if($config['temp'] == 'mobile'){
                                    
                        $avaPREFver = '50_';
                        $noAvaPrf = 'no_ava_50.png';
                                
                    } else {
                                
                        $avaPREFver = '100_';
                        $noAvaPrf = '100_no_ava.png';
                                
                    }
                                    
                    if($row['user_photo'])
                        $tpl->set('{ava}', $config['home_url'].'uploads/users/'.$row['friend_id'].'/'.$avaPREFver.$row['user_photo']);
                    else
                        $tpl->set('{ava}', "{theme}/images/{$noAvaPrf}");
                    
                    OnlineTpl($row['user_last_visit'], $row['user_logged_mobile']);
                    
                    $user_country_city_name = explode('|', $row['user_country_city_name']);
                        $tpl->set('{country}', $user_country_city_name[0]);
                                        
                    if($user_country_city_name[1])
                        $tpl->set('{city}', ', '.$user_country_city_name[1]);
                    else
                        $tpl->set('{city}', '');
                    
                    //Возраст юзера
                    $user_birthday = explode('-', $row['user_birthday']);
                    $tpl->set('{age}', user_age($user_birthday[0], $user_birthday[1], $user_birthday[2]));
                    if($user_id == $user_info['user_id']){
                        $tpl->set('[owner]', '');
                        $tpl->set('[/owner]', '');
                    } else
                        $tpl->set_block("'\\[owner\\](.*?)\\[/owner\\]'si","");
                                    
                    if($row['friend_id'] == $user_info['user_id'])
                        $tpl->set_block("'\\[viewer\\](.*?)\\[/viewer\\]'si","");
                    else {
                        $tpl->set('[viewer]', '');
                        $tpl->set('[/viewer]', '');
                    }
                    $tpl->compile('content');
                }
                navigation($gcount, $user_info['user_friends_num'], $config['home_url'].'friends/requests/page/');
                
            } else
                msgbox('', $lang['no_friend'], 'info_2');

        break;

Далее зайти в \templates\Default\friends\head.tpl

Найти там строку [/all-friends]

Вставить сразу выше неё

[recent-friends]
<div class="buttonsprofile albumsbuttonsprofile" style="height:10px;">
 <a href="/friends/{user-id}" onClick="Page.Go(this.href); return false;">Все друзья</a>
 <div class="activetab"><a href="/friends/recent" onClick="Page.Go(this.href); return false;"><div>Новые друзья</div></a></div>
 <a href="/friends/online/{user-id}" onClick="Page.Go(this.href); return false;">Друзья на сайте</a>
 <a href="/friends/requests" onClick="Page.Go(this.href); return false;">Заявки в друзья {demands}</a>
</div>
<div class="clear"></div><div style="margin-top:10px;"></div>
[/recent-friends]

В этом же файле найти  строку Все друзья и вставить сразу после неё

[owner]<a href="/friends/recent" onClick="Page.Go(this.href); return false;">Новые друзья</a>[/owner]

 

В этой же папке создать новый файл recent.tpl и добавить в него код

<div class="friends_onefriend width_100" id="friend_{user-id}">
 <a href="/u{user-id}" onClick="Page.Go(this.href); return false"><div class="friends_ava"><img src="{ava}" alt="" id="ava_{user-id}" /></div></a>
 <div class="fl_l" style="width:500px">
  <a href="/u{user-id}" onClick="Page.Go(this.href); return false"><b>{name}</b></a><div class="friends_clr"></div>
  {country}{city}<div class="friends_clr"></div>
  {age}<div class="friends_clr"></div>
  <span class="online">{online}</span><div class="friends_clr"></div>
 </div>
 <div class="menuleft fl_r friends_m">
  [viewer]<a href="/" onClick="messages.new_({user-id}); return false"><div>Написать сообщение</div></a>[/viewer]
  [owner]<a onMouseDown="friends.delet({user-id}, 0); return false"><div>Убрать из друзей</div></a>[/owner]
  <a href="/albums/{user-id}" onClick="Page.Go(this.href); return false"><div>Альбомы</div></a>
 </div>
</div>

Вот вся установка :emoji_1f63c:

 

От плюса в репу не откажусь.

Предлагайте идеи в этой теме.

Создано специально для пользователей cmstools.ru

  • Like 2
  • Upvote 4
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...