KirKMS Опубликовано 11 марта, 2021 Жалоба Поделиться Опубликовано 11 марта, 2021 Всем привет. Этот модуль я писал ещё давно, а точнее начинал писать и не доделал. Вот сегодня решил допилить его и выложить вам. Модуль сортирует список друзей по дате добавления. Сначала выводит новых друзья. За пример был взят всеми любимый Вк. Этапы установки под спойлером Спойлер Зайти в файл .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> Вот вся установка От плюса в репу не откажусь. Предлагайте идеи в этой теме. Создано специально для пользователей cmstools.ru 2 4 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения