KirKMS 142 Report post Posted November 5, 2020 Всем привет. Решил написать модуль для публичного доступа. Модуль позволяет закрыть профиль пользователя, от просмотра информации для тех кто не в друзьях. Во вам пару скринов. Видео обзор модуля под спойлером!!! Спойлер Установка модуля под спойлером. Спойлер 1)Заходим в файл \system\modules\register.php Ищем там строку 'val_msg|1|| Вставляем сразу после неё val_profile|1|| 2)Заходим в бд в таблицу _users ищем там user_privacy И как хотите, так и меняйте каждому пользователю ставим после val_msg|1|| вот это val_profile|1|| Я менял в ручную, т.к мало пользователей. 3)Заходим в файл \system\modules\settings.php Ищем там строку $tpl->load_template('settings/privacy.tpl'); Вставляем сразу после ней $tpl->set('{val_profile1}', $row['val_profile']); $tpl->set('{val_profile}', strtr($row['val_profile'], array('1' => 'Открытый', '2' => 'Закрытый'))); Выше ищем строку $val_msg = intval($_POST['val_msg']); и вставляем над ней $val_profile = intval($_POST['val_profile']); Ниже ищем строку if($val_msg <= 0 OR $val_msg > 3) $val_msg = 1; и вставляем над ней if($val_profile <= 0 OR $val_profile > 3) $val_profile = 1; Ниже ищем строку val_msg|{$val_msg}|| и вставляем сразу после неё val_profile|{$val_profile}|| Закрываем файл и сохраняем его. 4)Заходим в файл \system\modules\profile.php Ищем там строку $tpl->set_block("'\\[privacy-msg\\](.*?)\\[/privacy-msg\\]'si",""); Вставляем сразу после неё //Приватность профиля if($user_privacy['val_profile'] == 1 OR $user_privacy['val_profile'] == 2 AND $check_friend OR $user_id == $id){ $tpl->set('[privacy-profile]', ''); $tpl->set('[/privacy-profile]', ''); $tpl->set_block("'\\[not-privacy-profile\\](.*?)\\[/not-privacy-profile\\]'si",""); } else { $tpl->set('[not-privacy-profile]', ''); $tpl->set('[/not-privacy-profile]', ''); $tpl->set_block("'\\[privacy-profile\\](.*?)\\[/privacy-profile\\]'si",""); } Закрываем файл и сохранить не забудь. 5) Качаем иконку по и закидываем ее по пути\ваш шаблон\images\ 6)Заходим по пути\ваш шаблон\images\privacy.tpl Ищем там строку <div class="err_yellow no_display" id="ok_update" style="font-weight:normal;">Новые настройки приватности вступили в силу.</div> Вставляем сразу после неё <div class="texta color_000" style="width:300px">Тип <b>профиля</b>:</div> <div class="sett_privacy" onClick="settings.privacyOpen('profile')" id="privacy_lnk_profile">{val_profile}</div> <div class="sett_openmenu no_display" id="privacyMenu_profile"> <div id="selected_p_privacy_lnk_msg" class="sett_selected" onClick="settings.privacyClose('profile')">{val_profile}</div> <div class="sett_hover" onClick="settings.setPrivacy('val_profile', 'Открытый', '1', 'privacy_lnk_profile')">Открытый</div> <div class="sett_hover" onClick="settings.setPrivacy('val_profile', 'Закрытый', '2', 'privacy_lnk_profile')">Закрытый</div> </div> <input type="hidden" id="val_profile" value="{val_profile1}" /> <div class="mgclr"></div> 7)Заходим по пути\ваш шаблон\js\profile.js ищем там строку var val_msg = $('#val_msg').val(); вставляем выше неё var val_profile = $('#val_profile').val(); Ниже ищем строку val_msg: val_msg, вставляем выше неё val_profile: val_profile, Выше ищем oi != 'privacyMenu_msg' вставляем до неё oi != 'privacyMenu_profile' && oi != 'privacy_lnk_profile' && В этой же строке ищем #privacyMenu_msg, вставляем до неё #privacyMenu_profile, 8 )Заходим по пути\ваш шаблон\profile.tpl И там где нужно скрыть контент делаем так [privacy-profile] тут контент [/privacy-profile] Не хочу расписывать каждую строку. Их очень много. Вот пример [gifts][privacy-profile] <a href="/gifts{user-id}" onClick="Page.Go(this.href); return false" style="text-decoration:none"> <div class="albtitle" style="margin-top:5px"> {gifts-text} <div><b>Все</b></div> </div> <center>{gifts}</center> <div class="clear"></div> </a> [/privacy-profile][/gifts] В конце файла ищем <div class="err_yellow" style="font-weight:normal;margin-top:5px">{name} ограничила доступ к своей странице.</div> [/not-blacklist] и вставляем ниже [not-privacy-profile] <div class="err_yellow" style="font-weight:normal;margin-top:5px"> <img src="{theme}/images/close_profile.svg" <div="" style=" margin: 0 auto 12px; content: ''; display: block; width: 56px; height: 56px; "> <div style=" font-size: 14px; line-height: 18px; font-weight: 500; -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto; text-align: center; padding-bottom: 8px; "><strong>Это закрытый профиль</strong></div> <div style=" font-size: 14px; line-height: 18px; font-weight: 500; -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto; text-align: center; padding-bottom: 8px; ">Добавьте {name} в друзья, чтобы смотреть его записи,</br> фотографии и другие материалы</div> </div> [/not-privacy-profile] Вот и всё Не забывайте чистить папку с кэш. Модуль создан специально для пользователей cmstools.ru Автор KirKMS При копирование на сторонние сайты, ссылка на источник. В противном случае при обнаружение "БУДЕТ СТРАЙК" Всем спасибо за внимание. Оставляйте отзывы и пишите идеи для новых модулей. 6 Share this post Link to post Share on other sites
Lovly 75 Report post Posted November 5, 2020 Годно, думаю возьму кое что к себе в сборочку. Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 22, 2020 В 05.11.2020 в 10:06, KirKMS сказал: Всем привет. Решил написать модуль для публичного доступа. Модуль позволяет закрыть профиль пользователя, от просмотра информации для тех кто не в друзьях. Во вам пару скринов. Видео обзор модуля под спойлером!!! Показать контент Установка модуля под спойлером. Скрыть контент 1)Заходим в файл \system\modules\register.php Ищем там строку 'val_msg|1|| Вставляем сразу после неё val_profile|1|| 2)Заходим в бд в таблицу _users ищем там user_privacy И как хотите, так и меняйте каждому пользователю ставим после val_msg|1|| вот это val_profile|1|| Я менял в ручную, т.к мало пользователей. 3)Заходим в файл \system\modules\settings.php Ищем там строку $tpl->load_template('settings/privacy.tpl'); Вставляем сразу после ней $tpl->set('{val_profile1}', $row['val_profile']); $tpl->set('{val_profile}', strtr($row['val_profile'], array('1' => 'Открытый', '2' => 'Закрытый'))); Выше ищем строку $val_msg = intval($_POST['val_msg']); и вставляем над ней $val_profile = intval($_POST['val_profile']); Ниже ищем строку if($val_msg <= 0 OR $val_msg > 3) $val_msg = 1; и вставляем над ней if($val_profile <= 0 OR $val_profile > 3) $val_profile = 1; Ниже ищем строку val_msg|{$val_msg}|| и вставляем сразу после неё val_profile|{$val_profile}|| Закрываем файл и сохраняем его. 4)Заходим в файл \system\modules\profile.php Ищем там строку $tpl->set_block("'\\[privacy-msg\\](.*?)\\[/privacy-msg\\]'si",""); Вставляем сразу после неё //Приватность профиля if($user_privacy['val_profile'] == 1 OR $user_privacy['val_profile'] == 2 AND $check_friend OR $user_id == $id){ $tpl->set('[privacy-profile]', ''); $tpl->set('[/privacy-profile]', ''); $tpl->set_block("'\\[not-privacy-profile\\](.*?)\\[/not-privacy-profile\\]'si",""); } else { $tpl->set('[not-privacy-profile]', ''); $tpl->set('[/not-privacy-profile]', ''); $tpl->set_block("'\\[privacy-profile\\](.*?)\\[/privacy-profile\\]'si",""); } Закрываем файл и сохранить не забудь. 5) Качаем иконку по и закидываем ее по пути\ваш шаблон\images\ 6)Заходим по пути\ваш шаблон\images\privacy.tpl Ищем там строку <div class="err_yellow no_display" id="ok_update" style="font-weight:normal;">Новые настройки приватности вступили в силу.</div> Вставляем сразу после неё <div class="texta color_000" style="width:300px">Тип <b>профиля</b>:</div> <div class="sett_privacy" onClick="settings.privacyOpen('profile')" id="privacy_lnk_profile">{val_profile}</div> <div class="sett_openmenu no_display" id="privacyMenu_profile"> <div id="selected_p_privacy_lnk_msg" class="sett_selected" onClick="settings.privacyClose('profile')">{val_profile}</div> <div class="sett_hover" onClick="settings.setPrivacy('val_profile', 'Открытый', '1', 'privacy_lnk_profile')">Открытый</div> <div class="sett_hover" onClick="settings.setPrivacy('val_profile', 'Закрытый', '2', 'privacy_lnk_profile')">Закрытый</div> </div> <input type="hidden" id="val_profile" value="{val_profile1}" /> <div class="mgclr"></div> 7)Заходим по пути\ваш шаблон\js\profile.js ищем там строку var val_msg = $('#val_msg').val(); вставляем выше неё var val_profile = $('#val_profile').val(); Ниже ищем строку val_msg: val_msg, вставляем выше неё val_profile: val_profile, Выше ищем oi != 'privacyMenu_msg' вставляем до неё oi != 'privacyMenu_profile' && oi != 'privacy_lnk_profile' && В этой же строке ищем #privacyMenu_msg, вставляем до неё #privacyMenu_profile, 8 )Заходим по пути\ваш шаблон\profile.tpl И там где нужно скрыть контент делаем так [privacy-profile] тут контент [/privacy-profile] Не хочу расписывать каждую строку. Их очень много. Вот пример [gifts][privacy-profile] <a href="/gifts{user-id}" onClick="Page.Go(this.href); return false" style="text-decoration:none"> <div class="albtitle" style="margin-top:5px"> {gifts-text} <div><b>Все</b></div> </div> <center>{gifts}</center> <div class="clear"></div> </a> [/privacy-profile][/gifts] В конце файла ищем <div class="err_yellow" style="font-weight:normal;margin-top:5px">{name} ограничила доступ к своей странице.</div> [/not-blacklist] и вставляем ниже [not-privacy-profile] <div class="err_yellow" style="font-weight:normal;margin-top:5px"> <img src="{theme}/images/close_profile.svg" <div="" style=" margin: 0 auto 12px; content: ''; display: block; width: 56px; height: 56px; "> <div style=" font-size: 14px; line-height: 18px; font-weight: 500; -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto; text-align: center; padding-bottom: 8px; "><strong>Это закрытый профиль</strong></div> <div style=" font-size: 14px; line-height: 18px; font-weight: 500; -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto; text-align: center; padding-bottom: 8px; ">Добавьте {name} в друзья, чтобы смотреть его записи,</br> фотографии и другие материалы</div> </div> [/not-privacy-profile] Вот и всё Модуль создан специально для пользователей cmstools.ru Автор KirKMS При копирование на сторонние сайты, ссылка на источник. В противном случае при обнаружение "БУДЕТ СТРАЙК" Всем спасибо за внимание. Оставляйте отзывы и пишите идеи для новых модулей. + надо папку cache очистить 1 Share this post Link to post Share on other sites
KirKMS 142 Report post Posted November 22, 2020 @Stark98 Не нужно Рано или поздно само обновиться Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 22, 2020 Только что, KirKMS сказал: @Stark98 Не нужно Рано или поздно само обновиться Так, лол, а как проверить тогда работоспособность?) Share this post Link to post Share on other sites
KirKMS 142 Report post Posted November 22, 2020 @Stark98 Установи и проверяй. Ты думаешь я совсем не знаю как VII работает и код я написал не сам? Я когда писал модуль, кэш вообще не трогал. Так что не нужно умничать... Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 22, 2020 Только что, KirKMS сказал: @Stark98 Установи и проверяй. Ты думаешь я совсем не знаю как VII работает и код я написал не сам? Я когда писал модуль, кэш вообще не трогал. Так что не нужно умничать... Установил, проверил, пока кеш не очистил, ничего не работало. Share this post Link to post Share on other sites
KirKMS 142 Report post Posted November 22, 2020 @Stark98 ctrl+f5 и все болячки пропадают Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 22, 2020 4 часа назад, KirKMS сказал: @Stark98 ctrl+f5 и все болячки пропадают Я ради интереса запустил OpenServer, накатил Vii чистый и установил опять. Результат? Только с чисткой кеша заработало. Проверил на чистой с форума - там заработало сразу. Вывод - смотря какая сборка. 4 часа назад, KirKMS сказал: @Stark98 Установи и проверяй. Ты думаешь я совсем не знаю как VII работает и код я написал не сам? Я когда писал модуль, кэш вообще не трогал. Так что не нужно умничать... Также, я не обвинял тебя Share this post Link to post Share on other sites
Leymelki 25 Report post Posted November 22, 2020 если в друзьях то пофиг поазует что закрыто Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 23, 2020 (edited) 8 часов назад, Leymelki сказал: если в друзьях то пофиг поазует что закрыто Папку cache очистил? Мне помогло. Edited November 23, 2020 by Stark98 Share this post Link to post Share on other sites
Leymelki 25 Report post Posted November 23, 2020 1 час назад, Stark98 сказал: Папку cache очистил? Мне помогло. Да уже потом заметил! Share this post Link to post Share on other sites
Stark98 47 Report post Posted November 23, 2020 8 часов назад, Leymelki сказал: Да уже потом заметил! Рад помочь. Share this post Link to post Share on other sites
Print_control 1 Report post Posted November 23, 2020 Пока кеш не очистил не роботоло Share this post Link to post Share on other sites
Leymelki 25 Report post Posted November 23, 2020 5 часов назад, Stark98 сказал: Рад помочь. Я сам заметил без тебя,но спасибо Share this post Link to post Share on other sites
Leymelki 25 Report post Posted November 25, 2020 все новые зареганые с замком( Share this post Link to post Share on other sites