Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

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


Рекомендуемые сообщения

 

Всем привет.

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...