Модуль Мои гости

Модули и плагины для vii (студяги)!
Ответить
Аватара пользователя
glGizma
Site Admin
Сообщения: 214
Зарегистрирован: Ср сен 27, 2017 2:20 pm

Модуль Мои гости

Сообщение glGizma » Сб фев 01, 2020 7:44 am

Делаем SQL запрос в PHPmyADMIN

Код: Выделить всё

ALTER TABLE `vii_users` ADD `see_guests` text 
Открыть файл: ./system/modules/profile.php

Ищем:

Код: Выделить всё

$row = $db->super_query("SELECT user_id, user_search_pref, user_country_city_name, user_birthday, user_xfields, user_xfields_all, user_city, user_country, user_group, user_photo, user_friends_num, user_notes_num, user_subscriptions_num, user_wall_num, user_albums_num, user_last_visit, user_videos_num, user_status, user_privacy, user_sp, user_sex, user_gifts, user_public_num, user_audio, user_delet, user_ban_date, xfields, user_doc_num FROM `".PREFIX."_users` WHERE user_id = '{$id}'");  
Заменить на:

Код: Выделить всё

$row = $db->super_query("SELECT user_id, user_search_pref, user_country_city_name, user_birthday, user_xfields, user_xfields_all, user_city, user_country, user_group, user_photo, user_friends_num, user_notes_num, user_subscriptions_num, user_wall_num, user_albums_num, user_last_visit, user_videos_num, user_status, user_privacy, user_sp, user_sex, user_gifts, user_public_num, user_audio, user_delet, user_ban_date, xfields, user_doc_num, see_guests FROM `".PREFIX."_users` WHERE user_id = '{$id}'");  
Найти:

Код: Выделить всё

//Если есть такой, юзер то продолжаем выполнение скрипта
if($row){
Ниже добавить:

Код: Выделить всё

$row_guests = $db->super_query("SELECT user_privacy FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
$guests_privacy = xfieldsdataload($row_guests['user_privacy']);
// Проверка настроек приватности пользователя
if($user_id != $id AND $guests['val_guests2'] != 3)
{
$db->query("UPDATE LOW_PRIORITY `".PREFIX."_users` SET see_guests = '{$row['see_guests']}|{$user_id}|' WHERE user_id = '{$id}'");
mozg_clear_cache_file('user_'.$id.'/profile_'.$id);
mozg_clear_cache();
}
Найти:
//################### Друзья на сайте ###################//

ВЫШЕ добавить:

Код: Выделить всё

//################### Гости ###################//
if($row['see_guests']){
$guests_arr = array_unique(explode('|',$row['see_guests']));
foreach($guests_arr as $guest_id) {

$tpl->load_template('profile_friends.tpl');
$sql_guests = $db->super_query("SELECT SQL_CALC_FOUND_ROWS user_id, user_country_city_name, user_search_pref, user_birthday, user_photo FROM `".PREFIX."_users` WHERE user_id = '{$guest_id}' ORDER by rand() DESC LIMIT 0, 6", 1);
$tpl->load_template('profile_friends.tpl');
foreach($sql_guests as $row_guests){
$friend_info_online = explode(' ', $row_guests['user_search_pref']);
$tpl->set('{user-id}', $row_guests['user_id']);
$tpl->set('{name}', $friend_info_online[0]);
$tpl->set('{last-name}', $friend_info_online[1]);
if($row_guests['user_photo'])
$tpl->set('{ava}', $config['home_url'].'uploads/users/'.$row_guests['user_id'].'/50_'.$row_guests['user_photo']);
else
$tpl->set('{ava}', '{theme}/images/no_ava_50.png');
$tpl->compile('all_guests_friends');
}

}
}
Найти:

Код: Выделить всё

$tpl->set('{friends-num}', $row['user_friends_num']);


ВЫШЕ добавить:

Код: Выделить всё

$tpl->set('{gram-name}', gramatikName($author_info[0]));

$guests_num = count(array_unique(explode('|',$row['see_guests']))) - 1;
$tpl->set('{guests-num}', $guests_num); 
Найти:
//Кол-во подписок и Если есть друзья, то выводим

ВЫШЕ добавить:

Код: Выделить всё

//Если есть гости, то выводим
if($guests_num){
$tpl->set('[guests]', '');
$tpl->set('[/guests]', '');
$tpl->set('{guests}', $tpl->result['all_guests_friends']);
} else
$tpl->set_block("'\\[guests\\](.*?)\\[/guests\\]'si","");
Найти:

Код: Выделить всё

//Cover
$rrw = $db->super_query("SELECT user_cover, user_cover_pos FROM `".PREFIX."_users` WHERE user_id = '{$id}'");
ВЫШЕ добавить:

Код: Выделить всё

//Приватность гости
if($user_privacy['val_guests1'] == 1 OR $user_privacy['val_guests1'] == 2 AND $check_friend OR $user_id == $id){
$tpl->set('[privacy-guests]', '');
$tpl->set('[/privacy-guests]', '');
} else
$tpl->set_block("'\\[privacy-guests\\](.*?)\\[/privacy-guests\\]'si","");
Открыть файл: ./templates/Default/profile.tpl

Найти:

Код: Выделить всё

[friends]<div class="albtitle">Друзья <span>{friends-num}</span><div><a href="/friends/{user-id}" onClick="Page.Go(this.href); return false"><div class="mono_ico" onmouseover="myhtml.title('1', 'Показать всех друзей', 'newBBlockl')" id="newBBlockl1"></div></a></div></div>
<div class="newmesnobg" style="padding:0px;padding-top:10px;">{friends}<div class="clear"></div>
</div>[/friends] 
ВЫШЕ добавить:

Код: Выделить всё

[privacy-guests]
[guests]<div class="albtitle">Гости <span>{guests-num}</span><div><a href="/guests/{user-id}" onClick="Page.Go(this.href); return false"><div class="mono_ico" onmouseover="myhtml.title('1', 'Показать всех гостей', 'newBBlockl')" id="newBBlockl1"></div></a></div></div>
<div class="newmesnobg" style="padding:0px;padding-top:10px;">{guests}<div class="clear"></div>
</div>[/guests]
[/privacy-guests] 
В файл: ./system/mod.php

Добавить:
// Гости
case "guests" :
include ENGINE_DIR . '/modules/guests.php';
break;
В файл: .htaccess

Код: Выделить всё

# Guests
RewriteRule ^guests/clear(/?)+$ index.php?go=guests&amp;act=clear [L]
RewriteRule ^guests(/?)+$ index.php?go=guests [L]
RewriteRule ^guests/([0-9]+)(/?)+$ index.php?go=guests&amp;user_id=$1 [L]
RewriteRule ^guests/([0-9]+)/page/([0-9]+)(/?)+$ index.php?go=guests&amp;user_id=$1&amp;page=$2 [L] 
В файле: ./system/modules/register.php

Находим:

Код: Выделить всё

'val_msg|1||val_wall1|1||val_wall2|1||val_wall3|1||val_info|1||')");  
Меняем на:
'val_msg|1||val_wall1|1||val_wall2|1||val_wall3|1||val_info|1||val_guests1|1||val_guests2|1||')");

И в PHPmyADMIN выполняем запрос:

Код: Выделить всё

UPDATE `vii_users` SET user_privacy = 'val_msg|1||val_wall1|1||val_wall2|1||val_wall3|1||val_info|1||val_guests1|1||val_guests2|1||' 
Вложения
(58).jpg
(58).jpg (726.7 КБ) 7065 просмотров
Модуль Мои гости.zip
(38.53 КБ) 298 скачиваний

Ответить