kuban-forum.ru - Лучший форум для общения

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » kuban-forum.ru - Лучший форум для общения » 🛠️Технические вопросы работы форума » Исходные коды модификации этого форума.


Исходные коды модификации этого форума.

Сообщений 1 страница 7 из 7

1

Не секрет, что данный форум - это модификация стандартного варианта форума на платформе mybb.ru, сделанная с помощью javascript, CSS и параметров, которые добавляют функционал и меняют дизайн. Принято решение открыть используемые коды, чтобы самому было проще ориентироваться, редактировать и, возможно, это кому-то сможет пригодиться  :)

Дизайн и цвета элементов разработаны для использования  с темой  Mybb Vbulletin mix.
Для других тем может понадобиться редактирование параметров.

Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0

2

Администрирование - Формы - HTML верх

Закрытие форума на технические работы и т.п.

Скрипт выдаёт страницу поверх форума с объявлением о профилактических работах, о закрытии форума или любой произвольный текст.

Код:
<div id="pircs2"><!-- std.v.1/0/profilaktika --><link rel="stylesheet" type="text/css" href="https://forumstatic.ru/files/0010/b4/f8/46860.css" /><div id="msg-n2">У Вас отключён javascript.<br>В данном режиме, отображение ресурса<br/>браузером не поддерживается <br/></div><div id="LogIn_Window" style="display:none"><center>Уважаемые пользователи<br/> и гости Форума Кубани!<br/><br/>По причине<br/> отсутствия посещаемости<br/> данный форум  ЗАКРЫТ.<br/> Желаем приятного общения на других интернет-ресурсах.</center><br/> С уважением<center>Администрация форума.</center><br/><hr><br/><br/></div></div><!-- --><script type="text/javascript">

var ON_button=0; //Cвитч включения: 1 - включено!; 0 - выключено
var  moderDostyp_ON=0; //?Модер-доступ включён?: 1 - включен!; 0 - выключен

if(ON_button!=1||GroupID ==1||moderDostyp_ON*GroupID==2){
$("style.#style_st,div.#pircs2").replaceWith("");}
  else {$("#msg-n2").replaceWith("");
if(GroupID ==3) {$("#LogIn_Window").show();if(document.URL.indexOf("/login.php")==-1){
document.location.href = "../login.php"}else {
$(document).ready(function(){$("form#login").appendTo("#LogIn_Window");
$("#LogIn_Window").find("p.formsubmit a[href*='register.php']").text("");
var v=$("#LogIn_Window").find("p.formsubmit a[href*='action=forget']");
v.replaceWith("<span>Вход только для Администраторов</span>");});};}
else {document.location.href = "../login.php?action=out&id="+UserID};}
</script><!--end/profilaktika-->
Мгновенные уведомления

Это платный скрипт, требует оплаты и активации от админа площадки (Alex_63).
Тема на форуме техподдержки: https://forum.mybb.ru/viewtopic.php?id=38567#p939931

Код:
<!-- Мгновенные уведомления © Alex_63, 2024 -->
<link rel="stylesheet" type="text/css" href="//forumstatic.ru/f/ru/bestbb/notifications.css" />
<script type="text/javascript" src="//forumstatic.ru/f/ru/bestbb/notifications.js"></script>
 <script>
notifications.templates.reply.sound='https://forumstatic.ru/files/001a/f0/7d/12322.mp3';
</script>
<!-- Мгновенные уведомления: подписки на форум/тему © Alex_63, 2019 -->
<script>notifications.load('subscriptions');</script>
 
<!-- Мгновенные уведомления: упоминания © Alex_63, 2020 -->
<script>notifications.load('mentions');</script>

<!-- Мгновенные уведомления: Жалобы на сообщения с уведомлением администрации © Alex_63 -->
<script>notifications.load('reports');</script>

<!-- Мгновенные уведомления: регистрация новых участников © Alex_63 -->
<script>notifications.load('new_user')</script>
Скрыть предустановленные логотипы в шапке
Код:
<style>
#pun-title h1 {  display: none;}
#pun-title table {display: none;}
#pun-announcement h2 {display: none;}
#pun-announcement .container {padding-top: 1em}
</style>
Поставить свой логотип в шапке (на данном форуме не установлено, см. https://gribnikikybani.mybb.ru/)
Код:
<style>
#pun-title h1 {  display: none;}
#pun-title table {
    background-size: contain;
    background-position: center;
    background-image: url("https://forumstatic.ru/files/0010/54/6f/20763.jpg");
    /* (img-height / img-width * container-width) */
    /* (300 / 1310 * 100) */
    height: 0;
    padding-top: 22.9%;
    width: 100%;
}
#pun-announcement h2 {display: none;}
#pun-announcement .container {padding-top: 1em}
</style>
Задний фон форума
Код:
<!-- CS1 Background and text colours ----------------------->
<style>
html, body {background: #282a3b
    url(https://upforme.ru/uploads/001a/f0/7d/2/666686.png); background-attachment: fixed; background-position: top center; 
    border-radius: 10px;
    }
</style>
Подсвечивание ссылок фоном
Код:
<style>
/* Подсвечивание ссылок фоном  */
.punbb .post-content p a {
    background: #e0d8f2;
    border-radius: 3px;
    padding: 2px;
}
.punbb .post-content p a:hover { color: teal; }
</style>
Новые иконки для тем (и своя иконка статистики)

Иконки для тем: непрочитанной, прочитанной, закрытой, перемещённой. И заодно своя иконка статистики на главной странице.

Код:
<style type="text/css"> /* Ставим новые иконки  */
TR.inew Div.icon {
background: url(https://upforme.ru/uploads/001a/f0/7d/2/457111.png) no-repeat;}
TR.isticky Div.icon {
background: url(https://upforme.ru/uploads/001a/f0/7d/2/612441.png) no-repeat;}
TR.iclosed Div.icon {
background: url(https://upforme.ru/uploads/001a/f0/7d/153/571297.png) no-repeat;}
TR Div.icon{
background: url(https://upforme.ru/uploads/001a/f0/7d/2/163462.png) no-repeat;}
TR.iredirect Div.icon {
background: url(https://upforme.ru/uploads/001a/f0/7d/2/557788.png) no-repeat;}
#pun-stats ul.container {background-image: url("https://i.ibb.co/xHMjNMF/stata.png"); background-repeat: no-repeat; }/* Иконка статистики */
</style>
Выделение ников после слова "Привет" на главной странице
Код:
<style>
.gid1 #pun-status .item1 strong {
    color: teal; /*цвет Админа после Привета*/
    background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;   
}
.gid2 #pun-status .item1 strong {
    color: purple; /*цвет Модераторов после Привета*/
  background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;  
}
.gid4 #pun-status .item1 strong {
        background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;   
}
</style>
"Лайки" (т.н. быстроплюсы) в "сердечке"
Код:
<style>
/*Быстроплюсы для Топика!*/
div .post-rating p a {
    text-align: center;
    outline: 1px solid transparent;
    font-weight: 700;
    background: url(https://upforme.ru/uploads/001a/f0/7d/2/466540.png) no-repeat center;
     background-size:36px auto;
     position:relative;
    z-index:100;
    width: 36px;
    height: 36px;
    text-align:center;
    font-size: 12px !important;
    display: inline-block;
    vertical-align: middle;
    line-height: 34px;
    letter-spacing: -.1px;
}
.noNull:before{content: "+";
    display: inline-block;
    margin-left: -1px;
    font-size: 9px;
    letter-spacing: 0!important;
}
.punbb .post-rating p {
   padding: 0 !important;
}
</style>
<!--// Быстроплюсы v.1 by Deff //-->
<script src="https://forumstatic.ru/files/001b/a6/d4/74583.js"></script>
Закругления углов для цитат, спойлеров, картинок  и т.п. рамок, и для аватаров
Код:
<!-- Закругления НАЧАЛО-->
<style type="text/css">
iframe {
    border-radius: 10px;
}
.code-box{padding-left:50px!important; border-radius: 10px !important;
    border: 1px solid #c5d0e6;
}
.quote-box.hide-box{padding-left:50px!important; background: #faf0e6; border-radius: 10px !important;
    border: 1px #c5d0e6;
}
.quote-box.answer-box{padding-left:50px!important; background: #e6e6fa; border-radius: 10px !important;
    border: 1px solid #c5d0e6;
}
.spoiler-box.media-box{padding-left:50px!important;  background: #e6e5ff; border-radius: 10px !important;
    border: 1px solid #c5d0e6;
}
.spoiler-box.text-box{padding-left:50px!important;  background: #e8e8fc; border-radius: 10px !important;
    border: 1px solid #c5d0e6;
}
.quote-box.spoiler-box{padding-left:50px!important; background: #e8e8fc; border-radius: 10px !important;
   border: 1px solid #c5d0e6;
}
.quote-box.quote-main{padding-left:50px!important; background: #e6e6fa; border-radius: 10px !important;   border: 1px solid #c5d0e6;
}

.post .postimg {
    border-radius: 7px;
/* border: solid 1px #ccc; */

#pun-main h3 >a{ 
background: #f8f8ff;
padding: 0px 7px 3px !important;
border-radius: 10px !important;
</style>
<!-- Закругления КОНЕЦ-->
<!-- Аватары закругления НАЧАЛО-->
    <style>
.post .pa-avatar img {
  max-width: 130px;
  border-radius: 10px;              /* Закругление углов */
  box-shadow: 0px 5px 18px #000;    /* Тень */
}
</style>
<!-- Аватары закругления КОНЕЦ-->
Аватар в цитате, часть 1 для HTML верх
Код:
<!-- Аватар в цитате V.2 © Alex_63 / Ч.1 в HTML верх-->
<style type="text/css">
.quote-box.with-avatar{padding-left:50px!important;}
.author-avatar+span {margin-left:0;}
.author-avatar {
  float: left;
  width: 39px;
  margin-left: -40px;
  margin-top:0;
}
.author-avatar > img {
  width: 28px;
  padding: 2px;
  border: 1px solid #c4cad4;
  border-radius: 4px;
}
</style>
<script type="text/javascript">
var QuoteImg = 'https://forumstatic.ru/files/0015/ec/20/41408.png'; //Картинка "Перейти к сообщению" в цитате
</script><script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/77306.js"></script>
Иконки для разделов на главной странице форума
Код:
<!--НАЧАЛО иконки для разделов на главной-->
<style>
.punbb tr#forum_f61 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/15869.png")  no-repeat left center / contain;}
.punbb tr#forum_f43 div.icon {background: url("https://cdn2.iconfinder.com/data/icons/emoji-glyph/32/complaint_emotion_face-64.png")  no-repeat left center / contain;}
.punbb tr#forum_f5 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/179432.png") no-repeat left center / contain;}
.punbb tr#forum_f7 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/207128.jpg") no-repeat left center / contain;}
.punbb tr#forum_f9 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/647386.png") no-repeat left center / contain;}
.punbb tr#forum_f31 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/95236.png") no-repeat left center / contain;}
.punbb tr#forum_f2 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/407024.png") no-repeat left center / contain;}
.punbb tr#forum_f1 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/147440.png") no-repeat left center / contain;}
.punbb tr#forum_f44 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/353134.jpg") no-repeat left center / contain;}
.punbb tr#forum_f11 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/994291.png") no-repeat left center / contain;}
.punbb tr#forum_f26 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/671302.png") no-repeat left center / contain;}
.punbb tr#forum_f4 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/482309.png") no-repeat left center / contain;}
.punbb tr#forum_f17 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/997695.png") no-repeat left center / contain;}
.punbb tr#forum_f18 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/394185.png") no-repeat left center / contain;}
.punbb tr#forum_f16 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/25358.png") no-repeat left center / contain;}
.punbb tr#forum_f6 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/298246.png") no-repeat left center / contain;}
.punbb tr#forum_f20 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/t514161.png") no-repeat left center / contain;}
.punbb tr#forum_f37 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/t965429.png") no-repeat left center / contain;}
.punbb tr#forum_f39 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/287850.png") no-repeat left center / contain;}
.punbb tr#forum_f38 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/167479.png") no-repeat left center / contain;}
.punbb tr#forum_f14 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/140779.png") no-repeat left center / contain;}
.punbb tr#forum_f25 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/526709.png") no-repeat left center / contain;}
.punbb tr#forum_f30 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/425431.png") no-repeat left center / contain;}
.punbb tr#forum_f42 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/950521.png") no-repeat left center / contain;}
.punbb tr#forum_f41 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/811224.png") no-repeat left center / contain;}
.punbb tr#forum_f40 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/673546.png") no-repeat left center / contain;}
.punbb tr#forum_f23 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/745816.png") no-repeat left center / contain;}
.punbb tr#forum_f22 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/386313.png") no-repeat left center / contain;}
.punbb tr#forum_f28 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/957166.png") no-repeat left center / contain;}
.punbb tr#forum_f19 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/421032.png") no-repeat left center / contain;}
.punbb tr#forum_f27 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/36645.png") no-repeat left center / contain;}
.punbb tr#forum_f34 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/159249.png") no-repeat left center / contain;}
.punbb tr#forum_f32 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/819195.png") no-repeat left center / contain;}
.punbb tr#forum_f33 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/811602.png") no-repeat left center / contain;}
.punbb tr#forum_f35 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/16879.png") no-repeat left center / contain;}
.punbb tr#forum_f36 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/542994.png") no-repeat left center / contain;}
.punbb tr#forum_f45 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/282462.png") no-repeat left center / contain;}
.punbb tr#forum_f46 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/70801.png") no-repeat left center / contain;}
.punbb tr#forum_f47 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/907900.png") no-repeat left center / contain;}
.punbb tr#forum_f49 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/67882.png") no-repeat left center / contain;}
.punbb tr#forum_f50 div.icon {background: url("https://i.ibb.co/kQ1JB9y/icons8-billboard-94.png") no-repeat left center / contain;}
.punbb tr#forum_f55 div.icon {background: url("https://i.ibb.co/HNvMFHJ/web-dialog-logo.png") no-repeat left center / contain;}
.punbb tr#forum_f56 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/t137703.webp") no-repeat left center / contain;}
.punbb tr#forum_f58 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/805404.png") no-repeat left center / contain;}
.punbb tr#forum_f60 div.icon {background: url("https://upforme.ru/uploads/001a/f0/7d/2/555665.png") no-repeat left center / contain;}
</style>
<!--КОНЕЦ иконки для разделов на главной-->
Красивые кнопки
Код:
<!--НАЧАЛО красивые кнопки-->
<style>
.button {
   border: 1px solid #0a3c59;
   background: #3e779d;
   text-align: center;
   background: -webkit-gradient(linear, left top, left bottom, from(#65a9d7), to(#3e779d));
   background: -webkit-linear-gradient(top, #65a9d7, #3e779d);
   background: -moz-linear-gradient(top, #65a9d7, #3e779d);
   background: -ms-linear-gradient(top, #65a9d7, #3e779d);
   background: -o-linear-gradient(top, #65a9d7, #3e779d);
   background-image: -ms-linear-gradient(top, #65a9d7 0%, #3e779d 100%);
   padding: 10.5px 21px;
   -webkit-border-radius: 6px;
   -moz-border-radius: 6px;
   border-radius: 6px;
   -webkit-box-shadow: rgba(255,255,255,0.4) 0 1px 0, inset rgba(255,255,255,0.4) 0 1px 0;
   -moz-box-shadow: rgba(255,255,255,0.4) 0 1px 0, inset rgba(255,255,255,0.4) 0 1px 0;
   box-shadow: rgba(255,255,255,0.4) 0 1px 0, inset rgba(255,255,255,0.4) 0 1px 0;
   text-shadow: #7ea4bd 0 1px 0;
   color: #06426c;
   font-size: 14px;
   font-family: helvetica, serif;
   text-decoration: none;
   vertical-align: middle;
      }
 .button:hover {
   border: 1px solid #0a3c59;
   text-shadow: #1e4158 0 1px 0;
   background: #3e779d;
   background: -webkit-gradient(linear, left top, left bottom, from(#65a9d7), to(#3e779d));
   background: -webkit-linear-gradient(top, #65a9d7, #3e779d);
   background: -moz-linear-gradient(top, #65a9d7, #3e779d);
   background: -ms-linear-gradient(top, #65a9d7, #3e779d);
   background: -o-linear-gradient(top, #65a9d7, #3e779d);
   background-image: -ms-linear-gradient(top, #65a9d7 0%, #3e779d 100%);
   color: #fff;
   }
 .button:active {
   text-shadow: #1e4158 0 1px 0;
   border: 1px solid #0a3c59;
   background: #65a9d7;
   background: -webkit-gradient(linear, left top, left bottom, from(#3e779d), to(#3e779d));
   background: -webkit-linear-gradient(top, #3e779d, #65a9d7);
   background: -moz-linear-gradient(top, #3e779d, #65a9d7);
   background: -ms-linear-gradient(top, #3e779d, #65a9d7);
   background: -o-linear-gradient(top, #3e779d, #65a9d7);
   background-image: -ms-linear-gradient(top, #3e779d 0%, #65a9d7 100%);
   color: #fff;
}
   </style>
<!--КОНЕЦ красивые кнопки-->
Уменьшение ширины профайла в темах
Код:
<!-- уменьшение ширины профайла в темах-->
   <style type="text/css">  
.punbb .post h3 span, .punbb .post-body, .punbb .post-links {
    margin-left: 18em;
}
.punbb .post-links ul {
  margin-left: -17em;
}
.punbb .post .post-author {
  width: 17em;
  .punbb .post-body {
      margin-left: 17em;}
}
</style>
Увеличение ширины форума
Код:
<!-- Ширина форума -->
<style>
#pun {width: 91%;margin: auto;
    border-radius: 10px;
}
</style>
<!-- Ширина форума -->
Cпойлер для cкрытия полей мини-профиля в топиках
Код:
<!--НАЧАЛО  html-верх - Cпойлер для cкрытия полей мини-профиля в топиках, (с) ForumD.ru, satsana, 2021 -->
<script type="text/javascript" src="https://forumstatic.ru/files/0017/b3/fc/83644.js"></script>
<script type="text/javascript">
//  satMSP.vertical = 1; // вертикальный спойлер (кнопки расположены в столбик, вкладка открывается под кнопкой); по умолчанию кнопки расположены в одну строку над вкладками
//  satMSP.nofold = 1; // не закрывать открытые ранее вкладки при открытии новой; по умолчанию закрываются
//  satMSP.showtab = 1; // номер отображаемой при загрузке вкладки; по умолчанию все вкладки свёрнуты
//  satMSP.showbut = 1; // 1 - показывать все кнопки; по умолчанию копки пустых вкладок не отображаются
//  satMSP.speed = 600; // время сворачивания-разворачивания вкладок в мс (1 секунда = 1000мс), 0 - мгновенно, значение по умолчанию 400.
  satMSP.fields = [
    { // Список полей перед спойлером
      flist: [
"pa-author",	// Ник
"pa-title",	// Статус
"pa-fld1",	// Доп.поле1
"pa-avatar",	// Аватар
      ""] // Конец списка полей перед спойлером
    },
    { // Первая вкладка
      name: "Развернуть/Свернуть",
      img: "https://upforme.ru/uploads/001a/f0/7d/2/313111.png",
      flist: [
"pa-ip",	// IP
"pa-age",	// Возраст
"pa-from",	// Откуда
"pa-posts",	// Сообщений
"pa-respect",	// Уважение
"pa-sex",	// Пол
"pa-fld2",     //Знак Зодиака 
"pa-ua", //OS+browser
      ""]
    }, // Конец первой вкладки
            {} // Конец списка вкладок
  ];
</script><!-- Cпойлер cкрытия полей мини-профиля - КОНЕЦ -->
Сворачивание длинных цитат
Код:
<!-- Сворачивание длинных цитат -->
<style type="text/css">
.quote-box.toggle blockquote,.quote-box.toggle{position:relative;overflow-y:hidden}
.quote-box .quote-after{width:100%;height:2em;position:absolute;display:block;bottom:-.1em;transition:background-image .4s ease;cursor:pointer}
.quote-after:before {content:"^";width:100%;text-align:center;position:absolute;line-height:2em;font-weight:700;font-size:1.2em;bottom:-.3em;transition:opacity .4s ease;opacity:.6}
.quote-after.q-resize-1:before {transform:rotate(180deg);top:0;bottom:0;}
.quote-box:hover .quote-after:before{opacity:1;}
</style>

    <script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/91221.js"></script>
   <!-- Сворачивание длинных цитат -->
Выделение фона для ника над аватаром (в темах)

Для админов, модераторов и пользователей цвета разные. Сделано с запасом на возможные будущие группы :)

Код:
<!-- Выделение ника и фона для ника над аватаром (в темах) -->  
    <style>

div[data-group-id="1"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}

div[data-group-id="2"] li.pa-author>a 
{
background: #d3c5f0;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}

div[data-group-id="3"] li.pa-author>a 
{color:
background: #c9d5ec;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}

div[data-group-id="4"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}

div[data-group-id="5"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}
div[data-group-id="6"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}
div[data-group-id="7"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}
div[data-group-id="8"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}
div[data-group-id="9"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-
div[data-group-id="10"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
bord
div[data-group-id="11"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}
div[data-group-id="12"] li.pa-author>a 
{
background: #bed2f7;
padding: 0px 10px 3px !important;
border-radius: 6px !important;
}
</style>
<!-- Выделение ника и фона для ника над аватаром (в темах) -->
Убрать кнопку "поделиться"
Код:
<style>
.sharelink{
  display:none!important;
}
  </style>
Скрытие профиля в теме тегом

Внимание! В приведённом ниже коде следует заменить все слова hide_profile на hideprofile

Код:
<!--Скрытие профиля в теме тегом-->
    <style type="text/css">.hide_profile .post-author,.hide_profile .pl-email,.hide_profile .pl-website{display:none!important}
    .hide_profile .post-body,.hide_profile .post-links,.hide_profile .post-links ul,.post.hide_profile h3>span{margin-left:0!important}</style>
    <script>
    if(GroupID!=3&&(GroupID<3||[].indexOf(UserID)!=-1))FORUM.set('editor.addition.tags.hide_profile',{name:'Скрыть минипрофиль',onclick:function(){insert('[hide_profile]');}});
    $().pun_mainReady(function(){$('.post:contains("[hide_profile]")').addClass('hide_profile').html(function(){return $(this).html().replace(/\[hide_profile\]/gim,'')})});
    </script>
<!--Скрытие профиля в теме тегом-->
Индикатор активности пользователя
Код:
<!-- /* Индикатор активности пользователя */) -->
<style> 
.post .post-author ul {
  position: relative;
}
.post-author .pa-online,
.post-author:not(.online) .pa-author .acchide {
  position: absolute;
  display: inline-block !important;
  top: .2rem;
  right: .5rem;
  left: auto !important;
  line-height: unset;
  background: #8ac176;!important;
  height: .6rem !important;
  width: .6rem !important;
  margin: 0 0 0 -5px !important;
  padding: 0 !important;
  border: 0 !important;
  -webkit-transition: all .2s ease;
  -moz-transition: all .2s ease;
  transition: all .2s ease;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  cursor: pointer;
}
.post-author .pa-online:hover {
  background: #aad79a !important;
}
.post-author .pa-online:before,
.post-author.online .pa-author:after {
  content: unset !important;
}
.post-author:not(.online) .pa-author .acchide {
  background: #bbb !important;
}
.post-author:not(.online) .pa-author .acchide:hover {
  background: #ccc !important;
}
.post-author .pa-online:hover strong,
.post-author:has(.acchide:hover) .pa-last-visit,
.post-author .pa-last-visit:hover {
  opacity: .7;
  visibility: visible;
}
.post-author .pa-online strong,
.post-author .pa-last-visit {
  position: absolute;
  display: inline-block !important;
  top: 16px;
  right: -6px;
  padding: 0 8px !important;
  min-height: 24px;
  line-height: 24px;
  background: black;
  font-weight: 400;
  white-space: nowrap;
  color: #fff;
  font-size: 90%;
  text-shadow: rgba(0,0,0,0.2) 0 -1px 0;
  text-align: center;
  z-index: 10;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-transition: all .2s ease;
  -moz-transition: all .2s ease;
  transition: all .2s ease;
  opacity: 0;
  visibility: hidden;
  cursor: text;
}
.post-author .pa-last-visit {
  top: 20px;
  right: 5px;
}
.post-author .pa-online strong:before,
.post-author .pa-last-visit:before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  right: 5px;
  top: -10px;
  border-width: 6px 6px;
  border-style: solid;
  border-color: transparent transparent black transparent;
}
</style> 
<!-- /* Индикатор активности пользователя */) -->
Размер шрифтов по умолчанию
Код:
<style>
.punbb {
  font: normal 70% verdana, arial, helvetica, sans-serif;
  }
</style>
Вертикальное меню в профиле и сообщениях
Код:
<!-- НАЧАЛО Вертикальное меню в профиле и сообщениях -->
<style>
@media screen and (min-width: 540px) {
#profile > .container {
  padding: 1em 1em 1em 0 !important;
}
#profilenav {
  float: left;
  display: inline-block;
  width: 42px;
  margin: 0 1em 0;
  z-index: 10;
}
#profilenav ul, #profilenav li {
  padding: 0;
  margin: 0;
}
#profilenav h2 {
  display: none;
}
#profilenav ul {
  border: 1px solid #dbdbdb;
  background: #ebebeb;
  margin-bottom: 1em;
  width: 42px;
}
#profilenav ul li {
  border-bottom: 1px solid #dbdbdb;
}
#profilenav ul li:last-child {
  border-bottom: 0;
}
#profilenav li a {
  display: block;
  height: 0;
  width: 0;
  padding: 21px;
  color: transparent;
  text-decoration: none !important;
  text-indent: -9999px;
  z-index: 1;
  border-radius: 0;
  box-shadow: none;
}
#profilenav li a:hover {
  line-height: 0;
  padding-left: 50px;
}
#profilenav li a:hover, #nav-standard li a:hover, #pun-adnav li a:hover {
  text-decoration: none !important;
}
#profilenav ul li a:hover {
  position: relative;
  padding-right: 120px;
  color: #fff;
  text-indent: 0;
}
#pun-profile #profilenav ul li a, #pun-messages #profilenav ul li a {
  background-repeat: no-repeat;
}
 
/* Цвет при наведении и активного пункта */
#profilenav li.isactive a, #profilenav ul li a:hover {
  background-color: #4c9b72;
  box-shadow: none;
  border: 0;
}
/* Спрайт для Профиль */
#pun-profile #profilenav ul li a {
  background-image: url(https://forumstatic.ru/files/0007/af/57/65555.png);
}
/* Спрайт для Сообщения */
#pun-messages #profilenav ul li a {
  background-image: url(https://forumstatic.ru/files/0007/af/57/55565.png);
}
 
/* Входящие / Просмотр */
#pun-messages #profilenav ul .item1 a {
  background-position: 0 0;
}
#pun-profile #profilenav ul .view a:hover, #pun-profile #profilenav ul .view.isactive a, #pun-messages #profilenav ul .item1.isactive a, #pun-messages #profilenav ul .item1 a:hover {
  background-position: -42px 0;
}
/* -- */
/* Отправленные */
#pun-messages #profilenav ul .item2 a {
  background-position: 0 -42px;
}
#pun-messages #profilenav ul .item2.isactive a, #pun-messages #profilenav ul .item2 a:hover {
  background-position: -42px -42px;
}
/* -- */
/* Новое сообщение */
#pun-messages #profilenav ul:last-child .item1 a {
  background-position: 0 -84px;
}
#pun-messages #profilenav ul:last-child .item1.isactive a, #pun-messages #profilenav ul:last-child .item1 a:hover {
  background-position: -42px -84px;
}
/* -- */
/* Статус / Аватар */
#pun-messages #profilenav ul:last-child .item2 a {
  background-position: 0 -126px;
}
#pun-messages #profilenav ul:last-child .item2.isactive a, #pun-messages #profilenav ul:last-child .item2 a:hover {
  background-position: -42px -126px;
}
/* -- */
/* Всё прочитано */
#pun-messages #profilenav ul:last-child .item3 a {
  background-position: 0 -168px;
}
#pun-messages #profilenav ul:last-child .item3.isactive a, #pun-messages #profilenav ul:last-child .item3 a:hover {
  background-position: -42px -168px;
}
/* -- */
/* Очистить папку */
#pun-messages #profilenav ul:last-child .item4 a {
  background-position: 0 -210px;
}
#pun-messages #profilenav ul:last-child .item4.isactive a, #pun-messages #profilenav ul:last-child .item4 a:hover {
  background-position: -42px -210px;
}
/* -- */
/* - Начало Профиль - */
/* Основной */
#pun-profile #profilenav ul .item1 a {
  background-position: 0 -42px;
}
#pun-profile #profilenav ul .item1 a:hover, #pun-profile #profilenav ul .item1.isactive a {
  background-position: -42px -42px;
}
/* -- */
/* Персональный */
#pun-profile #profilenav ul .item2 a {
  background-position: 0 -84px;
}
#pun-profile #profilenav ul .item2 a:hover, #pun-profile #profilenav ul .item2.isactive a {
  background-position: -42px -84px;
}
/* -- */
/* Общения */
#pun-profile #profilenav ul .item3 a {
  background-position: 0 -126px;
}
#pun-profile #profilenav ul .item3 a:hover, #pun-profile #profilenav ul .item3.isactive a {
  background-position: -42px -126px;
}
/* -- */
/* Аватар */
#pun-profile #profilenav ul .item4 a {
  background-position: 0 -168px;
}
#pun-profile #profilenav ul .item4 a:hover, #pun-profile #profilenav ul .item4.isactive a {
  background-position: -42px -168px;
}
/* -- */
/* Подпись */
#pun-profile #profilenav ul .item5 a {
  background-position: 0 -210px;
}
#pun-profile #profilenav ul .item5 a:hover, #pun-profile #profilenav ul .item5.isactive a {
  background-position: -42px -210px;
}
/* -- */
/* Отображения */
#pun-profile #profilenav ul .item6 a {
  background-position: 0 -252px;
}
#pun-profile #profilenav ul .item6 a:hover, #pun-profile #profilenav ul .item6.isactive a {
  background-position: -42px -252px;
}
/* -- */
/* Приватность */
#pun-profile #profilenav ul .item7 a {
  background-position: 0 -294px;
}
#pun-profile #profilenav ul .item7 a:hover, #pun-profile #profilenav ul .item7.isactive a {
  background-position: -42px -294px;
}
/* -- */
/* Дополнительно */
#pun-profile #profilenav ul .item8 a {
  background-position: 0 -336px;
}
#pun-profile #profilenav ul .item8 a:hover, #pun-profile #profilenav ul .item8.isactive a {
  background-position: -42px -336px;
}
/* -- */
/* Приглашения */
#pun-profile #profilenav ul .item9 a {
  background-position: 0 -378px;
}
#pun-profile #profilenav ul .item9 a:hover, #pun-profile #profilenav ul .item9.isactive a {
  background-position: -42px -378px;
}
/* -- */
/* Загрузки */
#pun-profile #profilenav ul .item10 a {
  background-position: 0 -420px;
}
#pun-profile #profilenav ul .item10 a:hover, #pun-profile #profilenav ul .item10.isactive a {
  background-position: -42px -420px;
}
/* -- */
/* Управление */
#pun-profile #profilenav ul .item11 a {
  background-position: 0 -462px;
}
#pun-profile #profilenav ul .item11 a:hover, #pun-profile #profilenav ul .item11.isactive a {
  background-position: -42px -462px;
}
/* -- */
/* - Конец Профиль - */
}
</style>
<!-- КОНЕЦ Вертикальное меню в профиле и сообщениях -->
Индикатор загрузки страницы
Код:
<!--НАЧАЛО Индикатор загрузки страницы-->
<script>
$(function() {
$("body").append($("<div></div>").attr("id", "progress"));
$("#progress").width((30 + Math.random() * 30) + "%");
});
$(window).load(function() {
$("#progress").width("101%").delay(300).fadeOut(400);
});
</script>
<style>
#progress {
position:fixed;
z-index:100;
top:0;
left:0;
width:1%;
height:6px;
background:#4881ea;
border-radius:1px;
transition:width 500ms ease-out,opacity 400ms linear;
}
</style>
<!--КОНЕЦ Индикатор загрузки страницы -->
Разграничитель между текстом и подписью в посте
Код:
<!--НАЧАЛО Разграничитель между текстом и подписью в посте-->
<style>
@media screen and (min-width: 540px) {
.punbb .post-sig dt {
    background: url("https://forumstatic.ru/files/0015/e5/72/22984.png") repeat scroll 0 0 transparent;
    border: medium none;
    height: 20px;
    width: 618px;
}
}
</style>
<!--КОНЕЦ Разграничитель между текстом и подписью в посте-->
Треугольник (влево) в мини профайле в теме
Код:
<!--Начало Треугольник -->
<style>
.post .post-body {
    position: relative;
    overflow: visible;
}
.post .post-body::before {
    content: "";
    border: solid 12px;
    border-color: transparent #f5f5ff transparent transparent;
    display: block;
    position: absolute;
    left: -24px;
    top: 15px;
    z-index: 1;
}
.post .post-body::after {
    content: "";
    border: solid 13px;
    border-color: transparent #d1d1e1 transparent transparent;
        display: block;
    position: absolute;
    left: -26px;
    top: 14px;
   }
   </style>
<!--Конец Треугольник -->
Картинки в шапке разделов
Код:
<!--Начало Картинки в шапке раздела -->
<style>
@media screen and (min-width: 540px) {
/* Женский вопрос */
#pun-viewforum[data-forum-id="1"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/Qpbp5Qd/jv.gif) no-repeat center;
  height: 45px;
  margin-top: -10em;
  width: 100%;
}
  /* Политический форум */
#pun-viewforum[data-forum-id="5"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/471010.png) no-repeat center;
  height: 55px;
  margin-top: -5em;
  width: 100%;
}
  /* Дела домашние */
#pun-viewforum[data-forum-id="6"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/8dN02xj/1062.gif) no-repeat center;
  height: 55px;
  margin-top: -11em;
  width: 100%;
}
  /* Кофейня */
#pun-viewforum[data-forum-id="7"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/322436.png) no-repeat center;
  height: 55px;
  margin-top: -5em;
  width: 100%;
}
  /* Клуб Паноптикум */
#pun-viewforum[data-forum-id="9"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/222262.png) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* За рулём */
#pun-viewforum[data-forum-id="11"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/GFw2Zf4/1059.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Барахолка */
#pun-viewforum[data-forum-id="14"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/p12bSg1/1094.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Радиолюбитель */
#pun-viewforum[data-forum-id="16"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/S6xSwFM/1060.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Компьютеры и программы */
#pun-viewforum[data-forum-id="18"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/569437.png) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Авторынок: авто, мото, вело, запчасти */
#pun-viewforum[data-forum-id="26"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/HGpS3xD/1273.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Спорт */
#pun-viewforum[data-forum-id="28"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/LCDZVhG/1092.gif) no-repeat center;
  height: 47px;
  margin-top: -5em;
  width: 100%;
}
/* Юриспруденция */
#pun-viewforum[data-forum-id="31"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/vm9Bm8k/1046.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Царство растений */
#pun-viewforum[data-forum-id="37"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/900811.png) no-repeat center;
  height: 40px;
  margin-top: -5em;
  width: 100%;
}
/* Домашние животные */
#pun-viewforum[data-forum-id="38"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/0D75cmz/1038.gif) no-repeat center;
  height: 45px;
  margin-top: -2em;
  width: 100%;
}
/* Территория 1С */
#pun-viewforum[data-forum-id="39"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/PCzQSwC/1040.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Архив */
#pun-viewforum[data-forum-id="40"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/cF1LR3K/6.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Здоровье и медицина */
#pun-viewforum[data-forum-id="41"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/2kg3t1L/1064.gif) no-repeat center;
  height: 55px;
  margin-top: -11em;
  width: 100%;
}
/* Подвал Образцового Содержания */
#pun-viewforum[data-forum-id="44"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/Rpktb9q/1641.gif) no-repeat center;
  height: 55px;
  margin-top: -15em;
  width: 100%;
}
/* За Рулём */
#pun-viewforum[data-forum-id="45"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/7Wr7X4m/2024-09-25-233241170.png) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Мир вокруг нас */
#pun-viewforum[data-forum-id="46"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/791828.png) no-repeat center;
  height: 50px;
  margin-top: -5em;
  width: 100%;
}
/* Эзотерика */
#pun-viewforum[data-forum-id="47"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/811126.png) no-repeat center;
  height: 60px;
  margin-top: -5em;
  width: 100%;
}
/* Книги жалоб и предложений */
#pun-viewforum[data-forum-id="49"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://upforme.ru/uploads/001a/f0/7d/2/573623.png) no-repeat center;
  height: 55px;
  margin-top: -5em;
  width: 100%;
}
/* РЕКЛАМА */
#pun-viewforum[data-forum-id="50"] .main::before {
  content: '';
  display: inline-block;
  background: url(https://i.ibb.co/0jQbvMY/1061.gif) no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* WEB-DIALOG */
#pun-viewforum[data-forum-id="55"] .main::before {
  content: '';
  display: inline-block;
  background: url() no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Виноградарство, виноделие и винокурение */
#pun-viewforum[data-forum-id="56"] .main::before {
  content: '';
  display: inline-block;
  background: url() no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Ищу работу */
#pun-viewforum[data-forum-id="58"] .main::before {
  content: '';
  display: inline-block;
  background: url() no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
/* Предлагаю работу */
#pun-viewforum[data-forum-id="58"] .main::before {
  content: '';
  display: inline-block;
  background: url() no-repeat center;
  height: 55px;
  margin-top: -10em;
  width: 100%;
}
}
</style>
<!--Конец Картинки в шапке раздела -->
Кнопка записи голосового сообщения
Код:
<!-- Голосовые сообщения © Alex_63, 2024 -->
<link rel="stylesheet" type="text/css" href="//forumstatic.ru/f/ru/bestbb/voice.css" />
<script type="text/javascript" src="https://forumstatic.ru/f/ru/bestbb/voice.js"></script>
Расшифровка значений иконок в разделах
Код:
<!-- Расшифровка значений иконок в разделах -->
<script type="text/javascript">
if ((location.href[location.href.length-1] == '/') || (document.URL.indexOf("viewforum") != -1)) 
document.getElementById("pun-main").innerHTML += '<div class="container" style="padding: 0.5em; margin-top: 1em;"><table style="width: 20%; float: left; border-style: none; vertical-align: middle;"><tbody><tr><td style="border-style: none;" align="center"><div class="icon"><!-- --></div><b>Нет новых сообщений</b></td></tr></tbody></table><table style="width: 20%; float: left; border-style: none; vertical-align: middle;"><tbody><tr class="inew"><td style="border-style: none;" align="center"><div class="icon"><!-- --></div><b>Новые сообщения</b></td></tr></tbody></table><table style="width: 20%; float: left; border-style: none; vertical-align: middle;"><tbody><tr class="isticky"><td style="border-style: none;" align="center"><div class="icon"><!-- --></div><b>Прикреплённая тема</b></td></tr></tbody></table><table style="width: 20%; float: left; border-style: none; vertical-align: middle;"><tbody><tr class="iclosed"><td style="border-style: none;" align="center"><div class="icon"><!-- --></div><b>Закрытая тема</b></td></tr></tbody></table><table style="width: 20%; float: left; border-style: none; vertical-align: middle;"><tbody><tr class="iredirect"><td style="border-style: none;" align="center"><div class="icon"><!-- --></div><b>Тема перемещена</b></td></tr></tbody></table></div>';
</script>
<!-- Расшифровка значений иконок в разделах -->
Размытие текста вместо  зачёркивания
Код:
<style>
    /*Размытие на зачеркнутый текст*/
del {
    filter: blur(3px);
    text-decoration: none;
    transition:.33s;
}
del:hover {
    filter: initial;
    transition:.63s;
}
</style>
Счётчик тем, созданных юзером (в мини-профиле)
Код:
<!-- Счётчик тем, созданных юзером (в мини-профиле) (HTML верх) -->
    <noscript><link rel="stylesheet" type="text/css" href="https://forumstatic.ru/files/0013/66/53/39517.css" /></noscript>
    <script type="text/javascript" src="https://forumstatic.ru/files/0013/66/53/67954.js"></script>
<!-- Счётчик тем, созданных юзером (в мини-профиле) (HTML верх) -->
Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0

3

Администрирование - Формы - HTML низ

Падающие снежинки
Код:
<script src="https://forumstatic.ru/files/001a/f0/7d/20799.js?v=2" type="text/javascript"></script>
Аватар в цитате V.2 © Alex_63 / Ч.2 в HTML низ
Код:
<!-- Аватар в цитате V.2 © Alex_63 / Ч.2 в HTML низ -->
<script type="text/javascript">setLinkAndAva()</script>
Выделение цветом прикреплённых, закрытых и непрочитанных тем
Код:
<style>
tr.isticky td {
  background-color: #f2e1f2;
}

tr.iclosed td{
  background-color: #CFDCE8;
}
tr.inew td{
  background-color: #e0e2de;
}
</style>
Ужатие некликабельных и кликабельных картинок в постах
Код:
<style>
/* Ужатие некликабельных и кликабельных картинок в постах */
.post-content .postimg, .post-content a .postimg {
  max-width:350px!important;
  max-height:350px!important;
  width:auto!important;
  height:auto!important;
  }
@media screen and (min-width: 540px) {
.post-content .postimg, .post-content a .postimg {
  max-width:400px!important;
  max-height:400px!important;
  width:auto!important;
  height:auto!important;
  }
}
</style>
Кнопки для быстрой прокрутки страницы вверх и вниз
Код:
<!--Кнопки прокрутки вверх и вниз-->
<div class="go-up" id='ToTop'><img src="https://s9.uploads.ru/ZoSUi.png" border="0" width=100%/></div>
<div class="go-down" id='OnBottom'><img src="https://s9.uploads.ru/7ilTu.png" border="0" width=100%/></div>
<style>
.go-up,.go-down {
display:none;
position:fixed; /*позиционируем*/
right:0px; /*указываем положение, если слева - left*/
z-index:9999; /*показываем поверх все элементов на странице*/
cursor:pointer;
opacity:.7; /*прозрачность*/
margin-bottom:5px; /*отступ снизу (можно не указывать)*/
width:30px; /*ширина кнопки*/
height:30px; /*высота кнопки*/
}
.go-up {
bottom:65px; /*положение от низа окна браузера верхняя кнопка*/
}
.go-down {
bottom:25px; /*положение от низа окна браузера нижняя кнопка кнопка*/
}
.go-down:hover,.go-up:hover {
opacity:1;
}
</style>
<script type="text/javascript">
$(function(){
if ($(window).scrollTop()>="250") $("#ToTop").fadeIn("slow")
$(window).scroll(function(){
  if ($(window).scrollTop()<="250") $("#ToTop").fadeOut("slow")
  else $("#ToTop").fadeIn("slow")
});
if ($(window).scrollTop()<=$(document).height()-"999") $("#OnBottom").fadeIn("slow")
$(window).scroll(function(){
  if ($(window).scrollTop()>=$(document).height()-"999") $("#OnBottom").fadeOut("slow")
  else $("#OnBottom").fadeIn("slow")
});
$("#ToTop").click(function(){$("html,body").animate({scrollTop:0},"slow")})
$("#OnBottom").click(function(){$("html,body").animate({scrollTop:$(document).height()},"slow")})
});
</script>
<!--Кнопки прокрутки вверх и вниз-->
Регулировка размера шрифта в постах
Код:
<!-- Регулировка размера шрифта в постах © Alex_63 -->
<style>
.FNTslider{border-radius:4px;position:relative;z-index:1000;background:#e0e0e0;width:110px;height:5px;margin:3px 5px;border:solid 1px #ccc;float:right;margin-right:7%}.FNTslider .before{height:5px;border:solid 1px transparent;border-right:none 0;border-radius:4px 0 0 4px;position:absolute;background:#a0bcda;margin-top:-1px}.FNTslider .thumb{width:8px;height:13px;border-radius:3px;position:relative;top:-4px;background:#3980d8;cursor:pointer}#fntSlider:before{content:attr(data) "px";position:absolute;left:-32px;top:-5px;font-weight:400;font-size:.9em}
@media (max-width: 768px) {
  #fntSlider:before {
    left: calc(100% + 8px);
    right: auto;
  }
}
</style>
<script type="text/javascript">
if($(".post").length){(function(){var b='<div id="fntSlider" class="FNTslider"><div class="before"></div><div class="thumb"></div></div>';var m=$(".post:first h3 > span");m.find("strong").length?m.find("strong").after(b):m.append(b);var a=$("#fntSlider")[0];var j=$("#fntSlider > .thumb")[0];var h=$("#fntSlider > .before")[0];var d=$("#fntSlider").width();var k=parseInt($("#fntSlider").css("padding-left"));if(j){j.title="Размер шрифта"}$("#fntSlider > .thumb").tipsy({fade:true,gravity:"nw"});var i=localStorage.getItem("FNTsize");var c="";if(i){i=i.split(",");var g=i[0];var f=i[1];j.style.left=g+"px";h.style.width=g+"px";$(".post-content p").css("font-size",f+"px");$(".FNTslider").attr("data",f);c=i[2]}else{var n=$(".post-content p:first").css("font-size");n=n.replace("px","");n=Math.round(parseFloat(n));c=""+n;n-=6;n=n*5;j.style.left=n+"px";h.style.width=n+"px";$(".FNTslider").attr("data",n)}function l(p){var o=parseInt(p/5);o+=6;if(o>30){o=30}$(".post-content p").css("font-size",o+"px");localStorage.setItem("FNTsize",p+","+o+","+c.replace("px",""));$(".FNTslider").attr("data",o)}function e(p){var o=p.getBoundingClientRect();return{top:o.top+pageYOffset,left:o.left+pageXOffset}}$(j).on("mousedown touchstart",function(s){var o=e(j);var p=(s.type=="mousedown"?s.pageX:s.originalEvent?s.originalEvent.touches[0].pageX:s.touches[0].pageX);var r=p-o.left;var q=e(a);q.left+=k;document.onmousemove=document.ontouchmove=function(w){var u=(w.type=="mousemove"?w.pageX:w.originalEvent?w.originalEvent.touches[0].pageX:w.touches[0].pageX);var v=u-r-q.left;if(v<0){v=0}var t=d-j.offsetWidth;if(v>t){v=t}j.style.left=v+"px";h.style.width=v+"px";l(v)};document.onmouseup=document.ontouchend=function(){document.onmousemove=document.onmouseup=document.ontouchend=document.ontouchmove=null};return false});j.ondragstart=function(){return false};a.ondblclick=function(){var o=c;$(".post-content p").css("font-size",o+"px");o=parseInt(o);o-=6;o=o*5;localStorage.removeItem("FNTsize");j.style.left=o+"px";h.style.width=o+"px";$(".FNTslider").attr("data",o)}}())};
</script>
<!-- Регулировка размера шрифта в постах © Alex_63 -->
Новых тем за сутки (в статистике)
Код:
<script>
    <!-- Новых тем за сутки (в статистике) -->
(() => {fetch('/api.php?method=topic.getRecent&limit=100&fields=posted')
  .then(response => response.json())
  .then(dats => {
  let numb = 0, day = Math.floor(Date.now()/1000)-86400;
  dats.response.forEach(item => {
    if (item.posted > day) {
      numb++
      }
    });
    let item2 = document.createElement('li'), statscon = document.querySelector('#pun-stats .statscon .item2')
  item2.classList.add('item2')
  item2.innerHTML = `<span>Новых тем за сутки:</span> <strong>${numb}</strong>`
  statscon.parentNode.insertBefore(item2,statscon.nextSibling)
})})()
</script>
Запятая после ника
Код:
<!-- запятая после ника -->
<script type="text/javascript">
function to(username)
{insert('[b]' + username + '[/b]' + ', ');}
</script>
<!-- запятая после ника -->
Кнопки входа через соцсети на каждой странице
Код:
<!-- Кнопки входа через соцсети на каждой странице © Alex_63 -->
<style>span#login .social{margin:-2px 5px;}</style><script type="text/javascript">
var loginBtns = '<span class="item3" id="login" style="float:right">\
<a class="social social-facebook" href="/connect.php?provider=facebook"></a>\
<a class="social social-vkontakte" href="/connect.php?provider=vkontakte"></a>\
<a class="social social-odnoklassniki" href="/connect.php?provider=odnoklassniki"></a>\
<a class="social social-mailru" href="/connect.php?provider=mailru"></a>\
<a class="social social-google" href="/connect.php?provider=google"></a>\
<a class="social social-yandex" href="/connect.php?provider=yandex"></a>\
</span>';if(GroupID==3)$('#pun-status .container').append(loginBtns);
</script>
<!-- Кнопки входа через соцсети на каждой странице © Alex_63 -->
Аватарка в строке приветствия
Код:
<!-- Аватарка в строке приветствия -->
<style>.status_userava>img{width:34px;height:auto;vertical-align:middle;border-radius:4px;margin:-.6em 0}</style>
<script>$('#pun-status>p').prepend('<span class="status_userava"><img src="'+(window.UserAvatar?UserAvatar:'/i/default_avatar.jpg')+'"/></span>')</script>
<!-- Аватарка в строке приветствия -->
Красивые кнопки в форме ответа + компактная форма ответа
Код:
<style>
/* Красивые кнопки в форме ответа  */
#form-buttons {
  display: inline-block;
  border: 1px solid #c9d9e9;
  border-left-width: 0;
  background-color: #e3ecf3;
  background-image: url(https://upforme.ru/uploads/0007/af/57/14152-4.png);
  background-repeat: repeat-x;
}
#form-buttons table {
  width: 100% !important;
}
#form-buttons td {
  border-left: 1px solid #c9d9e9 !important;
  border-right: 1px solid #f3f7fa !important;
}
#form-buttons td:hover {
  background-color: #f5f8fb;
}
#form-buttons td:active {
  background-color: #c9d9e9;
  -moz-box-shadow: inset 1px 1px 5px #92a9c1;
  -webkit-box-shadow: inset 1px 1px 5px #92a9c1;
  box-shadow: inset 1px 1px 5px #92a9c1;
}
 
/* Компактная форма ответа  */
#post {
  margin: 0;
  padding: 0;
}
#post fieldset {
  border: none;
}
#post legend {
  display: none;
}
#post .formsubmit {
  padding: 0 18px 18px 18px;
  margin: 0 !important;
}
</style>
Расширенная палитра цветов
Код:
<!-- Расширенная палитра цветов -->
<!-- * Новая Палитра © Deff * -->
<style>
body #post #color-area {
background-position: 0!important;
background-size: 366px auto !important;
padding: 21px 30px 8px 30px!important;
width: 298px!important;
}
#color-area table.Myp .rightMy input{
/*margin-left:54px*/
}
#color-area table.Myp input{
z-index:0!important;
}
</style>
<script src="https://forumstatic.ru/files/0010/b4/f8/74494.js"></script>
<!-- Расширенная палитра цветов -->
Кликабельность ника в постах Гостя
Код:
<!-- Кликабельность ника в постах Гостя -->
        <script>$(".post[data-group-id=3]").find(".pa-author").html(function(){return this.innerHTML.replace(/(<.+>)(.+)$/,'$1<a href="javascript:to(\'$2\')">$2</a>')});</script>
Привью темы, рейтинг и подписчики
Код:
<!--  Привью темы, рейтинг и подписчики -->
<style>
.tipsy .userInfo img, .tipsy .avatarTop img {border-radius: 50%;width: 52px;height: 52px;float: left;margin: 0 5px 0 0;}
.tipsy .userTitle h3,.tipsy .userTitle h4 {margin: 0;}
.tipsy .userTitle h4 {font-weight: normal;font-style: italic;}
.tipsy .userBlurb p,.tipsy .lastActivity p {margin: 0; word-spacing : 8px;}
.tipsy .topPreview, .tipsy .topicStart {max-width: 400px;overflow: hidden;position: relative;}
.tipsy .topPreview h2 {margin: 0 !important;font-size: 14px;font-weight: normal;}
.tipsy .topPreview h2 span {font-weight: bold;} 
.tipsy .reit {color: #10c610;}
.tipsy .topPreview .subs, .tipsy .usTitle-1 {color: teal;}
.tipsy .usTitle-2 {color: purple;}
.tipsy .usTitle-4 {color: #ed7e1c;}
.tipsy hr {margin: 8px 5px;border: none;height: 1px;background-color: #788593;}
.tipsy .avatarTop {height: 52px;}
.tipsy .topicStart p {margin: 5px 0;}
li.pa-ua {color: #557fae;}
</style>
<script type="text/javascript" src="https://forumstatic.ru/files/0017/d8/50/86896.js"></script>
<!--  Привью темы, рейтинг и подписчики -->
Рестор (восстановление)  ссылки "Новые сообщения" на главной странице
Код:
<!-- Рестор (восстановление)  ссылки "Новые сообщения" на главной странице -->
<script type="text/javascript">
    if(GroupID != 3) { $('#pun-ulinks .container').prepend('<li class="item1"><a href="/search.php?action=show_new">Новые сообщения</a></li>'); }
    </script>
    <!-- Рестор (восстановление)  ссылки "Новые сообщения" на главной странице -->
Кликабельные категории
Код:
<!-- clickability categories :D -->
<style id="Hidecategor">#pun-index .category{display:none}</style>
<script>var st00="<style>#pun-index .category.category-",st02="{display:block!important}</style>",a=document.URL,b=a.replace("http://"+location.hostname+"/=&category-","");a!=b?$("#Hidecategor").after(st00+b+st02):$("#Hidecategor").replaceWith(""),$(document).ready((function(){var t='<a href="//'+location.hostname+"/=&";$(".category").each((function(){var a=$(this).attr("class").split(" ")[1],e=$(this).find("h2 span:last");e.html(t+a+'" ><span style="color:'+e.css("color")+';">'+e.text()+"</span></a>")}))}))</script>
<!-- //End-/clickability categories :D -->
Кнопка "Показать пароль" в форме входа
Код:
<!-- // Кнопка "Показать пароль" в форме входа -->
<style>#login label[for=fld16]{margin-left:3px!important;}.pw-wrp{margin:2px 0;}
#Login_Punbb .inputfield:last-child{margin-top:17px!important;}</style>
<script>if($('#pun-login,#Login_Punbb').length)(function(){
var Sp='<span style="display:block" class="pw-wrp"><input type=checkbox id=fld16 style="margin:1px 0 0 0;float:left;"/>\
<label for=fld16 style="font-weight:400">Показать пароль</label></span>';
$('input[name="req_password"]').after(Sp);
$('#fld16,label[for="fld16"]').click(function(){
  if($('#fld16').attr('checked')){$('input[name="req_password"]')[0].type='text';}
  else{$('input[name="req_password"]')[0].type='password';}
});}())
</script>
<!-- // Кнопка "Показать пароль" в форме входа -->
Быстрый переход по разделам форума
Код:
<!-- Меню "Быстрый переход" © Alex_63 -->
    <script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/18390.js"></script>
Пагинатор
Код:
<!--Пагинатор-->
<!-- Быстрый переход по разделам форума © Alex_63 -->
<style>
.quickJump {
  display: none;
  position: absolute;
  background: #f7f7f7;
  color: #333;
  font-size: 11px;
  margin-top: 3px;
  padding: 5px !important;
  border: solid 1px #ccc;
  border-radius: 5px;
}
.openQJump { cursor: pointer; margin-right: 1px; }
.openQJump > img { margin-bottom: -2px; margin-right: 2px; opacity: 1.0; }
.openQJump > img:hover { opacity: 0.8; }
</style>
<!-- Быстрый переход по разделам форума © Alex_63 -->
<script type="text/javascript">
var t_fID = $('html').find('link[rel="alternate"]').attr('href').split('id=')[1];if($('#pun-viewtopic').length){var UrlSpl='viewtopic'} if($('#pun-viewforum').length){var UrlSpl='viewforum'}if($('#pun-viewtopic, #pun-viewforum').length){$('div.pagelink:contains("»"), div.pagelink:contains("«")').each(function(){$('<form action="http://'+location.hostname+'/'+UrlSpl+'.php" method="get"><ul class="qJump-ul"><li class="quickJump"><label><input type="hidden" name="id" value="'+t_fID+'" />К странице: <input type="text" name="p" size="4" /></label> <input type="submit" class="button" value="Перейти" /></li></ul></form>').appendTo(this);$('<span class="openQJump"><img src="https://i.ibb.co/wMNm7Lb/Arrow-mini.png" /></span>').prependTo(this);});$('.openQJump').click(function(){$(this).parent().find('.quickJump').fadeToggle(160);});}</script>
<!-- //End//-Быстрый переход по страницам темы и форума -->
<!--Пагинатор-->
Изменяем отображение статистики на главной
Код:
<!--Изменяем отображение Статистики на Главной-->
<style>
#pun-stats .e2:after{
content:","
}
#pun-stats .e2-1,
#pun-stats .e3-1{
font-weight:700;
}
</style>
<script>
if($(".punbb").attr("id")=="pun-index"){
  function getNumEnding(Num,EndArr){var End,i;Num=Num%100;if(Num>=11&&Num<=19)End=EndArr[2];
  else{i=Num%10;switch(i){case(1):End=EndArr[0];break;case(2):;case(3):;
  case(4):End=EndArr[1];break;default:End=EndArr[2];};};return End;};
  var GuestWrdArr=new Array( "гость","гостя","гостей");
  var UserWrdArr=new Array("пользователь","пользователя","пользователей");

$("#pun-stats .item5 div").each(function(){
  var Cnt=$(this).find("span").html();var Lnk=$(this).find("a:first").clone();var L=$(this).html();
  var Wrd="";var Wrd2="";var Wrd3="";

if(L.indexOf("Активны")!=-1){  //Строка Активных;
  var GuestNum=parseFloat($(this).find("strong").eq(0).html());
  var UserNum=parseFloat($(this).find("strong").eq(1).html());
  Wrd=getNumEnding(GuestNum,GuestWrdArr);Wrd2=getNumEnding(UserNum,UserWrdArr);
  L='<span class=e1></span> <span class=e2><span class="e2-1">'+GuestNum+'</span>';
  L+='<span class="e2-2"> '+Wrd+'</span></span> <span class="e3"><span class="e3-1">'+UserNum+'</span>';
  L+='<span class="e3-2"> '+Wrd2+'</span></span>';if( UserNum>0){L+=":"};
  L+=' <span class=e4>'+Cnt+'</span>';$(this).html(L);$(this).find(".e1").prepend(Lnk)};

if(L.indexOf("Посетили за сутки")!=-1){  //Строка Посетителей за сутки;
  var UserNum=parseFloat($(this).find("strong").eq(0).html());
  Wrd3=getNumEnding(UserNum,UserWrdArr);
  L='<span class=e1></span> <span class="e3"><span class="e3-1">'+UserNum+'</span>';
  L+='<span class="e3-2"> '+Wrd3+'</span></span>';if( UserNum>0){L+=":"};
  L+=' <span class=e4>'+Cnt+'</span>';$(this).html(L);$(this).find(".e1").prepend(Lnk);
  if(UserNum.toString().substring(UserNum.length-1,UserNum.length)=="1"&&UserNum!=11){
  var e1=$(this).find(".e1 a");var a=e1.text();e1.text(a.replace('Посетили','Посетил'))};};});

$("#pun-stats .item6 div").each(function(){
  var UserNum=parseFloat($(this).find("strong").eq(0).html());var Cnt=$(this).find("span").html();
  UserWrdArr=new Array("пользователя","пользователей","пользователей");
  var Wrd=getNumEnding(UserNum,UserWrdArr);var St=$(this).html().replace(/^([^\[\]]*?)\!([\s\S]*)$/igm,"$1");
  L='<span class=e1>'+St+'</span> <span class="e3"><span class="e3-1">'+UserNum+'</span>';
  L+='<span class="e3-2"> '+Wrd+'</span></span>: <span class=e4>'+Cnt+'</span>';$(this).html(L);});};
</script>
<!--//End//-Изменяем отображение Статистики на Главной-->
Хештеги
Код:
<!-- -->
<script type="text/javascript">
$().pun_mainReady(function(){$('.post-content:contains("#")').map(function(){
    var a = '#',b = '_&HASH&_',c = '.code-box',cl = [];$(this).find(c).map(function(i){cl[i] = $(this).clone(true,true)});
    $(this).find('a').attr('href',function(){return this.href.replace(a,b)});
    var lnkTAG = '<a href="/search.php?action=search&keywords=%23$1&sort_dir=DESC" title="$1">#$1</a>';
    var cnt = $(this).html().replace(/#([^\s"'<>\(\);]+)/ig,lnkTAG); $(this).html(cnt); 
    $(this).find(c).map(function(i){$(this).replaceWith(cl[i])}); $(this).find('a').attr('href',function(){return this.href.replace(b,a)});
  });});
</script>
<!-- Хештеги -->
Исключаем из поиска: хештеги в цитатах, Текст в подписи, надпись "Отредактировано" при цитировании
Код:
<!-- Исключаем  Хештеги #xxxx, Подпись, Отредактировано при цитировании-->
<style>#pun:not(.gid1) .punbb .post-content p.lastedit{display:none;}</style>
<script>
$(function() {
quoteOld = window.quote;
window.quote = function(x,y){
var pst = $('#p'+y);pst.find('p.lastedit').remove();
var a = pst.find('.post-sig').remove(); quoteOld(x,y);
a.addClass('Deff').appendTo(pst.find('.post-content'));
$('#main-reply').val($('#main-reply').val().replace(/(\]|[\s])#[^\s\[]+/gim,'$1'));
}});
</script>
<!-- Исключаем из поиска: хештеги в цитатах, Текст в подписи, надпись "Отредактировано" при цитировании-->
Добавка ссылки на тему к заголовку поста
Код:
<!--Добавка ссылки на тему к заголовку поста-->
<script type="text/javascript">$(document).trigger("pun_about_ready"); if (typeof ym == 'object') {ym(201230, 'userParams', {UserId:2, is_user:1}); ym(201230, 'params', {forum_id: 1262678});}</script>
<script>
<script type="text/javascript">$(document).trigger("pun_about_ready"); if (typeof ym == 'object') {ym(201230, 'userParams', {UserId:2, is_user:1}); ym(201230, 'params', {forum_id: 1262678});}</script>
<script><!--Добавка ссылки на тему к заголовку поста-->
if($(".punbb").attr("id")=="pun-viewtopic"){
  var s0=$("link[rel='alternate']").attr("href").replace(/^.*id=(\d+)$/igm,"$1");
  var s1="/viewtopic.php?id="+s0;var s2=$(".main h1 span").text();
  var s3='<li class="TopicLnk" style="font-weight:normal;display:inline-block;color:#7c7cc2;"> Тема: <a href="';
  s3+=s1+'">'+s2+'</a></li>';$(".post h3>span a.permalink").each(function(){
  if($(this).parents(".post").hasClass("topicpost")){$(this).after(s3.replace("Re: ",""));
  }else{$(this).after(s3);};});}
</script>
<!--Добавка ссылки на тему к заголовку поста-->
Снятие выделения с форума по клику
Код:
<!-- Снятие выделения с форума по клику © Alex_63 / В HTML низ -->
    <style>#pun-index .inew div.icon{cursor:pointer}</style>
        <script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/62764.js"></script>
        <!-- Снятие выделения с форума по клику © Alex_63 / В HTML низ -->
Загрузчик изображений в форме ответа

Это платный скрипт, требует оплаты и активации от админа площадки (Alex_63).
Тема на форуме техподдержки: https://forum.mybb.ru/viewtopic.php?id= … 12#p990724

Код:
<!-- Загрузчик изображений в форме ответа © 2018 Alex_63 -->
<script>FORUM.defaultHost = 'uploads'; // Хостинг по умолчанию: 'uploads' 'imgur' 'imageban'</script>
<link rel="stylesheet" type="text/css" href="https://forumstatic.ru/files/0015/c4/3f/18002.css" />
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/18001.js"></script>
<!-- Загрузчик изображений в форме ответа © 2018 Alex_63 -->
Первые N тем в описании форума
Код:
<!-- Пример работы: https://kuban.mybb.ru -->
<!-- Первые N тем в описании форума (новая версия) -->
<style>
.topicslist {
  position: absolute;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, .35);
  margin-top: 5px;
  padding: 10px;
  box-shadow: 0 4px 4px -2px rgba(0, 0, 0, .35);
  border-radius: 3px;
  max-width: 90vw;
  z-index: 110;
}
.topicslist .sticky a {
  font-weight: bold;
  color: blue;  /* Цвет для выделенных тем */
}
.topicslist .closed a {
  color: #cb8787;  /* Цвет для закрытых тем */
}
.topicslist .load {
  animation: slow-load-blink 2s ease-in-out infinite;
}
 
.clickt {
  cursor: pointer;
  user-select: none;
}
.clickt img {
  border: 0;
  line-height: 1;
  max-height: 16px;
  max-width: 16px;
  vertical-align: middle;
}
@keyframes slow-load-blink{0%,100%{opacity:1}50%{opacity:.3}}
</style>
<script>
window.firstNtopics = {
    // Настройки скрипта
    count: 7,            // Максимальное количество выводимых тем форума
    touchDevice: 1,      // 1- включить принудительно вариант показа блока click для сенсорных устройств , 0 - выключить
    useSession: 1,       // 1- включить кэширование списка тем на 10 минут, 0 - выключить
    selectAct: 'click',  // Вариант показа блока: 'click' (нажатие по значку рядом с названием темы) или 'hover' (наведение курсора на название темы)
 
    // Шаблон для действия click
    templateClick: ' <span class="clickt" title="Показать список тем"><img src="https://upforme.ru/uploads/001a/f0/7d/2/12211.png" alt="Список тем"></span>',
};
</script>
<script type="module" src="https://forumstatic.ru/files/001c/3a/d4/90907.js"></script>
 
<!-- Конец Первые N тем в описании разделов форума -->
Ссылка на профиль по клику на аву
Код:
<!-- Ссылка на профиль по клику на аву -->
<script type="text/javascript">
$('.post .pa-avatar').each(function(){
  var hr = $(this).parents('.post').find('li>a[href*="/profile.php?id="]')[0].href;
  $(this).html('<a href="' + hr + '" target="_blank">' + $(this).html() + '</a>');
});
</script>
<!-- Ссылка на профиль по клику на аву -->
Окно для незарегистрированных, на главной странице
Код:
<!-- Окно для незарегистрированных, на главной странице -->
<div valign="bottom"><style type="text/css"> 
 span#okno{ 
 position: fixed; 
 bottom: 10px; 
 line-height: 16px; 
 text-align: left; 
 right: 50px; 
 z-index: 30000; 
 opacity: 0.9; 
 width: 250px; 
 height: 80px; 
 background: #00508a; 
 color: #fff; 
 a { color: pink; }
 a:hover { color: #ff4d00; }
 text-shadow: rgba(0,0,0,0.3) 0px -1px 0px; 
 padding: 10px; 
 text-decoration: none; 
 font-size: 11px; 
 font-family: Tahoma; 
 border: 1px solid #ffffff; 
 box-shadow: rgba(0,0,0,0.3) 0px 1px 4px, inset #ffffff 0px 1px 0px; 
 border-radius: 3px; 
 } 
 </style> 
<span id="okno"><strong>Здравствуйте, уважаемый Гость!</strong><br> 
Вы видите это сообщение, так как Вы не зарегистрировались.</br>
<a href="/login.php"><strong>Войдите</strong></a> или <a href="/register.php"><strong>Зарегистрируйтесь</strong></a>, чтобы иметь возможность отправлять сообщения.</span></div>
</div>
<script>
(function(){var stPageCurrent = '/register.php,/register.php?agree=%D1%EE%E3%EB%E0%F1%E5%ED,/login.php,/login.php?action=forget,/misc.php?action=rules'.split(',');
-1===stPageCurrent.indexOf(window.location.pathname+window.location.search)&&3===GroupID?$('#okno').show():$('#okno').hide()})()
</script>
<!-- Окно для незарегистрированных, на главной странице -->
Уменьшение количества кнопок в форме быстрого ответа при мобильном просмотре
Код:
<!-- Уменьшение количества кнопок в форме быстрого ответа при мобильном просмотре -->
<style type="text/css">
@media only screen and (hover: none) and (pointer: coarse){
td#button-font, td#button-size, td#button-indent,td#button-hide, td#button-quote, td#button-code, td#button-table, td#button-keyboard, td#button-voice {display: none;}
}
</style>
<!-- Уменьшение количества кнопок в форме быстрого ответа при мобильном просмотре -->
Выделить код и скопировать в буфер обмена
Код:
<!--выделить код. Alex_63 new.2019--> 
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/26102.js"></script>
<script>eval(select_text.toString().replace(/\}$/,'try{document.execCommand("copy")}catch(e){}}'))</script>
<script type="text/javascript">select_text.linkText = 'Выделить код и скопировать в буфер обмена' //текст ссылки</script>
Кнопка выравнивания текста по ширине (в форме быстрого ответа)
Код:
<!-- Кнопка выравнивания по ширине (в форме быстрого ответа) -->
<style type="text/css">
span[style*="justify"]{
  display:block;
  text-align:justify;
}
#button-justify {
  background:url(https://upforme.ru/uploads/001a/f0/7d/2/624009.png) center no-repeat!important;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("#post #button-center").after('<td id=button-justify align=center valign=center title="Выравнивание по ширине"><img onclick="bbcode(\'[align=justify]\',\'[/align]\')" src="/i/blank.gif"/></td>');});
</script>
<!-- Кнопка выравнивания по ширине (в форме быстрого ответа) -->
Дополнительные смайлики в форме ответа
Код:
<!-- Дополнительные смайлики в форме ответа -->
<!--дополнительные смайлы v.3.1 © Romych-->
<style type="text/css">
#wrapper{position:relative;width:500px;}
.tabs{height:22px;line-height:21px;margin:0 0 3px;list-style:none;}
 .tabs li{float:left;cursor:pointer;}
.tabs li a{background:transparent url("https://forumstatic.ru/files/0017/d8/50/91984.png")no-repeat scroll 0 0/cover;color:#444;display:block;margin-bottom:-1px;padding:0 5px 1px;position:relative;text-align:center;text-decoration:none;width:70px;}
.tabs li a:hover{color:#efefef;background:url("https://forumstatic.ru/files/0017/d8/50/91984.png")no-repeat scroll 0-22.1px/cover;text-decoration:none;}
.tabs li.active a{color:#444;border:medium hidden;line-height:22px;background-position:0 -43.5px;}
.tabs li.active a:hover{color:#6A5ACD;}
#smilies-area div[class^="t-"]:not(.t-0){display:none;width:470px;
  overflow: inherit;  
}
#wrapper, #wrapper > div {
    max-width: 100%;
}
#smilies-block, #wrapper ul ~ div {
    clear: both;
}
</style>
<script type="text/javascript">
var nabor=[];
 

nabor['CRAZY'] = [
'https://kolobok.us/smiles/madhouse/alcoholic.gif',
'https://kolobok.us/smiles/madhouse/crazy_pilot.gif',
'https://kolobok.us/smiles/madhouse/dash1.gif',
'https://kolobok.us/smiles/madhouse/dash2.gif',
'https://kolobok.us/smiles/madhouse/dash3.gif',
'https://kolobok.us/smiles/madhouse/drag.gif',
'https://kolobok.us/smiles/madhouse/gamer1.gif',
'https://kolobok.us/smiles/madhouse/gamer2.gif',
'https://kolobok.us/smiles/madhouse/gamer3.gif',
'https://kolobok.us/smiles/madhouse/gamer4.gif',
'https://kolobok.us/smiles/madhouse/girl_crazy.gif',
'https://kolobok.us/smiles/madhouse/girl_hospital.gif',
'https://kolobok.us/smiles/madhouse/girl_wacko.gif',
'https://kolobok.us/smiles/madhouse/hang1.gif',
'https://kolobok.us/smiles/madhouse/hang2.gif',
'https://kolobok.us/smiles/madhouse/hang3.gif',
'https://kolobok.us/smiles/madhouse/hunter.gif',
'https://kolobok.us/smiles/madhouse/locomotive.gif',
'https://kolobok.us/smiles/madhouse/mail1.gif',
'https://kolobok.us/smiles/madhouse/man_in_love.gif',
'https://kolobok.us/smiles/madhouse/on_the_quiet2.gif',
'https://kolobok.us/smiles/madhouse/pilot.gif',
'https://kolobok.us/smiles/madhouse/prankster.gif',
'https://kolobok.us/smiles/madhouse/prankster2.gif',
'https://kolobok.us/smiles/madhouse/preved.gif',
'https://kolobok.us/smiles/madhouse/russian_roulette.gif',
'https://kolobok.us/smiles/madhouse/sarcastic.gif',
'https://kolobok.us/smiles/madhouse/sarcastic_blum.gif',
'https://kolobok.us/smiles/madhouse/sarcastic_hand.gif',
'https://kolobok.us/smiles/madhouse/slow.gif',
'https://kolobok.us/smiles/madhouse/stinker.gif',
'https://kolobok.us/smiles/madhouse/suicide2.gif',
'https://kolobok.us/smiles/madhouse/tease.gif',
'https://kolobok.us/smiles/madhouse/telephone.gif',
'https://kolobok.us/smiles/madhouse/to_become_senile.gif',
'https://kolobok.us/smiles/madhouse/to_pick_ones_nose.gif',
'https://kolobok.us/smiles/madhouse/to_pick_ones_nose2.gif',
'https://kolobok.us/smiles/madhouse/to_pick_ones_nose3.gif',
'https://kolobok.us/smiles/madhouse/to_pick_ones_nose_eat.gif',
'https://kolobok.us/smiles/madhouse/wacko.gif',
'https://kolobok.us/smiles/madhouse/wacko2.gif'];

nabor['RPG'] = [
'https://kolobok.us/smiles/rpg/assassin.gif',
'https://kolobok.us/smiles/rpg/butcher.gif',
'https://kolobok.us/smiles/rpg/dwarf.gif',
'https://kolobok.us/smiles/rpg/elf.gif',
'https://kolobok.us/smiles/rpg/girl_werewolf.gif',
'https://kolobok.us/smiles/rpg/jester.gif',
'https://kolobok.us/smiles/rpg/king.gif',
'https://kolobok.us/smiles/rpg/king2.gif',
'https://kolobok.us/smiles/rpg/orc.gif',
'https://kolobok.us/smiles/rpg/paladin.gif',
'https://kolobok.us/smiles/rpg/queen.gif',
'https://kolobok.us/smiles/rpg/vampire.gif',
'https://kolobok.us/smiles/rpg/wizard.gif'];


$('#button-smile').one('click',function(){$('#smilies-block').addClass('t-0');var vkl = '<div id="wrapper"><ul class="tabs" onclick="return changeVisibility (\'smilies-area\', false)"><li class="t-0 active"><a>Обычные</a></li></ul></div>';$('#smilies-area').prepend(vkl);for(var i in nabor){$('.tabs').append('<li class="t-'+i+'"><a>'+i+'</a></li>');$('#wrapper').append('<div class="t-'+i+'"></div>');$.each(nabor[i],function(q){$('div.t-'+i).append('<img loading="lazy" src="'+nabor[i][q]+'" onclick=smile("[img]'+nabor[i][q]+'[/img]") />');})};$('.tabs li').click(function(){var thisClass=this.className;$('#smilies-area div[class^="t-"]').hide();$('div.'+thisClass).fadeToggle('slow');$('.tabs li').removeClass('active');$(this).addClass('active');}); });
</script>
<!-- Дополнительные смайлики в форме ответа -->
Обновление тем в реальном времени ("живые темы")

Тема на форуме техподдержки площадки: https://forum.mybb.ru/viewtopic.php?id=41002

Код:
<!-- Обновление тем в реальном времени © Alex_63, 2025 -->
<script type="text/javascript" src="//forumstatic.ru/f/ru/bestbb/realtime.js"></script>
<!-- Обновление тем в реальном времени: индивидуальное отключение © Alex_63, 2025 -->
<script type="text/javascript" src="//forumstatic.ru/f/ru/bestbb/realtime.disable.js"></script>
Добавление чекбокса "Выбрать все сообщения на странице" для модераторов
Код:
<!-- Чекбокс "Выбрать все" при модерировании темы и форума © Alex_63 -->
<style>.modmenu #CheckAll{margin-left:0.7em!important}</style><script type="text/javascript">if($('#pun-modviewforum').length){$('th.tcmod').html('<input type="checkbox" id="CheckAll" title="Выбрать все">');$('#CheckAll').click(function(){if($('#CheckAll').attr('checked')){$(this).parents('table').find('td.tcmod input[type="checkbox"]').attr('checked',true);}else{$(this).parents('table').find('td.tcmod input[type="checkbox"]').attr('checked',false);}});}else if(GroupID<=2 && $('.punbb[id^="pun-multi"]').length){$('.modmenu .button').before('<span>Выбрать все</span><input type="checkbox" id="CheckAll" title="Выбрать все">');$('#CheckAll').click(function(){if($('#CheckAll').attr('checked')){$(this).parents('#pun-main').find('.pl-select input[type="checkbox"]').attr('checked',true);}else{$(this).parents('#pun-main').find('.pl-select input[type="checkbox"]').attr('checked',false);}});}</script>
<!-- //END// -Чекбокс "Выбрать все" при модерировании темы и форума -->
Своё описание к форуму на странице форума
Код:
<!-- Своё описание к форуму на странице форума © Alex_63 -->
<style>
#forum-anc .container {
  padding: 10px;
  font-size: 12px;
}
</style>
<script type="text/javascript">
var forum_descr = {
  //ID  //Описание(объявление)
  5 : '<mark><font color="green"><b> На форуме не приветствуется неуважительная к РФ или её политике тональность обсуждений.</b></font></mark>',
 //Последний элемент без запятой!
}
for(var fid in forum_descr) {
  var forum_anc = forum_descr[fid];
  var Url = document.URL;
  if(Url == 'http://'+location.hostname+'/viewforum.php?id='+fid || Url.indexOf('forum.php?id='+fid+'&p=')!=-1) {
    $('#pun-main').before('<div id="forum-anc" class="section"></div>');
    $('#forum-anc').prepend('<div class="container">'+forum_anc+'</div>');
  }
}
</script>
<!-- Своё описание к форуму на странице форума © Alex_63 -->
Картинка перед ником юзера (например, шляпка)
Код:
<!-- Картинка перед ником юзера (например, шляпка)  -->
<script type="text/javascript">
var online = document.links;
for (var i=0; i<online.length; i++) {
if (online[i].innerHTML == "Некто"){online[i].innerHTML = "<img src='https://forumstatic.ru/files/001b/2e/23/39513.png' width='30' height='21' />" + online[i].innerHTML}
else if (online[i].innerHTML == "Некто"){online[i].innerHTML = "<img src='https://forumstatic.ru/files/001b/2e/23/39513.png' width='30' height='21' />" + online[i].innerHTML}
}
</script>
<!-- Картинка перед ником юзера (например, шляпка)  -->
Список поблагодаривших под постом
Код:
<!-- Список поблагодаривших под постом  -->
<script>
(function() {
    // Дожидаемся полной загрузки страницы, включая все ресурсы
    window.addEventListener('load', function() {
        function vv(fn) {
            var lang_obj = {
                'Сказали спасибо': {
                    en: 'Thanked'
                }
            },
            lang = $('html')[0].lang;
 
            function _(text) {
                return (lang == 'ru' || !(lang_obj[text] && lang_obj[text][lang])) ? text : lang_obj[text][lang]
            };
 
            if ($('#pun-viewtopic').length) {
                var p_id = [];
 
                $('div.post').each(function(i) {
                    p_id[i] = $(this).attr('id').slice(1);
                });
 
                // Убедимся, что есть посты для обработки
                if (!p_id.length) return;
                
                function getJ(url, callback) {
                    $.get(url, function(d) {
                        $.isFunction(callback) && callback(d);
                    }, 'json');
                };
                
                // Функция обработки голосов с задержкой для гарантии загрузки FORUM.postVotes
                function processVotes(data) {
                    // Проверяем, что данные получены
                    if (!data || !data.response) return;
                    
                    // Убеждаемся, что объект FORUM существует
                    if (typeof FORUM === 'undefined' || !FORUM.postVotes) {
                        // Если объект не существует, повторяем попытку через 500мс
                        setTimeout(function() {
                            processVotes(data);
                        }, 500);
                        return;
                    }
                    
                    function votesInit(idp) {
                        // Убеждаемся, что post ID существует в FORUM.postVotes
                        var vot = FORUM.postVotes[idp];
                        if (!vot) return;
                        
                        var j = [], n = '';
                        
                        $.each(vot, function(z) {
                            var q = vot[z];
                            if (q.value == 1) {
                                j[z] = '<a href="/profile.php?id=' + q.user_id + '">' + q.username + '</a>';
                                n += j[z];
                                if (z < vot.length - 1) n += ', ';
                            }
                        });
                        
                        if (n) {
                            // Проверяем, что элемент для списка не существует, чтобы избежать дублирования
                            var postBox = $('.post#p' + idp + ' .post-box');
                            if (postBox.find('.postVoters').length === 0) {
                                n = '<div class="postVoters"><strong>' + _('<i><font color ="#13355e">Сказали спасибо</font></i>') + ':</strong> ' + n + '</div>';
                                postBox.append(n);
                            }
                        }
                    }
                    
                    // Обработка полученных данных
                    for (var i = 0; i < data.response.length; i++) {
                        var pid = data.response[i].post_id;
                    }
                    
                    // Обрабатываем каждый пост с голосами
                    for (var pid in FORUM.postVotes) {
                        votesInit(pid);
                    }
                    
                    $.isFunction(fn) && fn();
                }
                
                // Вызываем API для получения голосов
                getJ('/api.php?method=post.getVotesByPosts&post_id=' + p_id.join(',') + '&fields=post_id,user_id,username,value,datetime&sort_dir=desc', processVotes);
            }
        };
 
        vv(function() {});
        
        // Повторная проверка через 1.5 секунды для случаев AJAX-загрузки или медленной обработки данных
        setTimeout(function() {
            vv(function() {});
        }, 1500);
    });
})();
</script>
<!-- Список поблагодаривших под постом  -->
Вставка видео с помощью Sendvid
Код:
<!-- Вставка видео с помощью Sendvid   -->
<script>
(function() {
  // 🔁 Переключатель sandbox: включите/выключите при необходимости
  const SANDBOX_ENABLED = true;
 
  function embedSendvid(root = document) {
    // Ссылки вида https://sendvid.com/eke4ai5r
    const anchors = root.querySelectorAll('a[href*="sendvid.com"]');
    anchors.forEach(a => {
      if (a.dataset.svEmbedded) return;
      const href = a.getAttribute('href') || a.textContent || '';
      const m = href.match(/sendvid\.com\/(?:embed\/)?([a-zA-Z0-9]+)/i);
      if (!m) return;
      const id = m[1];
 
      const wrapper = document.createElement('div');
      wrapper.className = 'sv-embed';
      wrapper.innerHTML = createIframeHTML(id);
      a.replaceWith(wrapper);
      wrapper.dataset.svEmbedded = "1";
    });
  }
 
  // 🔧 Функция генерации iframe-кода с/без sandbox
  function createIframeHTML(id) {
    const sandboxAttr = SANDBOX_ENABLED
      ? 'sandbox="allow-same-origin allow-scripts allow-presentation"'
      : '';
    return `
      <iframe
        src="https://sendvid.com/embed/${id}"
        title="Sendvid video"
        allowfullscreen
        loading="lazy"
        referrerpolicy="no-referrer"
        ${sandboxAttr}
      ></iframe>
    `;
  }
 
  // 💅 Стили
  const css = `
    .sv-embed {
      position: relative;
      padding-bottom: 56.25%;
      height: 0;
      overflow: hidden;
      max-width: 100%;
      background: #000;
      border-radius: 8px;
    }
    .sv-embed iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }
  `;
  const style = document.createElement('style');
  style.textContent = css;
  document.head.appendChild(style);
 
  // 🚀 Инициализация
  if (document.readyState !== 'loading') embedSendvid();
  else document.addEventListener('DOMContentLoaded', () => embedSendvid());
 
  // ♻️ Обработка динамической подгрузки
  const mo = new MutationObserver(muts => {
    for (const m of muts) {
      m.addedNodes.forEach(n => {
        if (n.nodeType === 1) embedSendvid(n);
      });
    }
  });
  mo.observe(document.body, { childList: true, subtree: true });
})();
</script>
<!-- Вставка видео с помощью Sendvid   -->
Счётчик тем, созданных юзером (в мини-профиле)  - кликабельность надписи
Код:
<!-- Счётчик тем, созданных юзером (в мини-профиле)  - кликабельность надписи (HTML низ) -->
<script>$('.post-author li[class^="pa-fld"]:contains("Создано тем")').each(function(){var uid=$(this).closest('.post').attr('data-user-id');$(this).find('.fld-name').html('<a href="/search.php?action=show_user_topics&user_id='+uid+'">Создано тем</a>:')})</script>
<!-- Счётчик тем, созданных юзером (в мини-профиле)  - кликабельность надписи (HTML низ) -->
Счётчик сообщений, созданных юзером (в мини-профиле)  - кликабельность надписи
Код:
<!-- Счётчик сообщений, созданных юзером (в мини-профиле)  - кликабельность надписи (HTML низ) -->
<script>$('.post-author .pa-posts').each(function(){var uid=$(this).closest('.post').attr('data-user-id');$(this).find('.fld-name').html('<a href="/search.php?action=show_user_posts&user_id='+uid+'">'+$(this).find('.fld-name').text().split(':')[0]+'</a>:')})</script>
<!-- Счётчик сообщений, созданных юзером (в мини-профиле)  - кликабельность надписи (HTML низ) -->
Универсальный скрипт замены © Merlin777
Код:
<!-- Начало: Универсальный скрипт замены © Merlin777 kuban.mybb.ru -->
<script>
document.addEventListener("DOMContentLoaded", function () {

  // =========================
  // 📦 CONFIG — Настройки
  // =========================
  const CONFIG = {
    observerDelay: 0, // ⏳ Задержка обновления элементов (0 = requestAnimationFrame для максимально плавного обновления)
    
    // ✅ Разрешить покраску ников на главной странице сайта (в статистике)
   enableIndexNickColoring: true,
  
    // 🔤 Автозамены текста в профиле, кнопках и мини-профиле
    replacements: {
      profileElements: [
        ['.pl-email.profile', 'Профиль', '👤Профиль'],   // Заменяем текст "Профиль" на с эмодзи
        ['.pl-email.email', 'E-mail', '📧Mail'],        // "E-mail" → "📧Mail"
        ['.pl-email.pm', 'ЛС', '✉️\u00A0ЛС'],          // "ЛС" → "✉️ ЛС"
        ['.pl-website.website', 'Вебсайт', '🌐']        // "Вебсайт" → "🌐"
      ],
      postButtons: [
        ['.pl-edit a', 'Редактировать', '✍️\u00A0Редактировать'], // Кнопка редактирования
        ['.pl-delete a', 'Удалить', '❌\u00A0Удалить'],           // Кнопка удаления
        ['.pl-quote a', 'Цитировать', '💬\u00A0Цитировать'],     // Кнопка цитирования
        ['.pl-reply a', 'Ответить', '↩️\u00A0Ответить'],        // Кнопка ответа
        ['.pa-posts', 'Сообщений', '📨 Сообщений'],             // Кол-во сообщений с эмодзи
  
      ],
      miniProfile: [
        ['.pa-ip', 'IP', '🖧 IP'],                      // IP пользователя
        ['.pa-sex', 'Пол', '⚧️ Пол'],                  // Пол с эмодзи
        ['.pa-fld3', 'Создано тем', '➕ Создано тем'], // Кол-во созданных тем
        ['.fld-name', 'Откуда', '🧭 Откуда'],         // Местоположение
        ['.pa-respect', 'Уважение', '⭐ Рейтинг']      // Рейтинг
      ]
    },

    // 🎨 Селекторы мини-профиля для перекраски
    miniProfileSelectors: ["li.pa-title","li.pa-fld1"],

    // 🎨 Цвета ников по группам (основной и ховер)
    groupColors: {
      1: ['#008080','#a1b2cc'], // 🛡️ Админ
      2: ['#993232','#d15f13'], // 🧑‍⚖️ Модератор
      3: ['#000000','#B0B0B0'], // 👤 Гость (черный с серым ховером)
      4: ['#072387','#5869a3']  // 🧙‍♂️ Пользователь (темно-синий с светло-синим ховером)
    },

    // 🎨 Цвета для мини-профиля по именам
    miniProfileColors: {
      "Модератор": { color: ['#38761d','#6abd46'], groups: [2] },       // Зеленый оттенок
      "Администратор": { color: ['#5c1eba','#a1b2cc'], groups: [1] },    // Фиолетовый оттенок
      "The Wizard of the Realm": { color: ['#2986cc','#a1b2cc'], groups: [1] } // Синий
    }
  };

  // =========================
  // 💬 CSS hover — плавное изменение цвета при наведении
  // =========================
  const style = document.createElement('style');
  style.innerHTML = 'a[data-base-color], span[data-base]{transition: color 0.25s ease; cursor:pointer;}';
  document.head.appendChild(style);

  // =========================
  // 🔄 Функция автозамены текста
  // =========================
  function ChangeAll(scope=document){
    // Объединяем все массивы автозамен
    [].concat(CONFIG.replacements.profileElements,
             CONFIG.replacements.postButtons,
             CONFIG.replacements.miniProfile).forEach(function(r){
      var sel = r[0], from = r[1], to = r[2];
      // Находим элементы, которые еще не заменены
      scope.querySelectorAll(sel+':not([data-replaced])').forEach(function(el){
        if(el.innerHTML.indexOf(from) !== -1) el.innerHTML = el.innerHTML.replaceAll(from,to);
        el.dataset.replaced = 'true'; // Помечаем элемент как обработанный
      });
    });
  }

  // =========================
  // 🎨 Покраска ников в постах
  // =========================
  function recolorPostNicks(users, scope = document) {
  const userMap = {};
  users.forEach(u => {
    if (u.username) userMap[u.username.trim().toLowerCase()] = parseInt(u.group_id);
  });

  // 🧱 Общая функция покраски по элементу
  function colorNick(el, username) {
    const group_id = userMap[username.toLowerCase()] || 4; // default group
    const colors = CONFIG.groupColors[group_id];
    if (!colors) return;

    el.style.color = colors[0];
    el.dataset.baseColor = colors[0];
    el.dataset.hoverColor = colors[1] || colors[0];
  }

  // 🎯 1. Ники в постах
  scope.querySelectorAll('.post a[href^="javascript:to("]').forEach(el => {
    if (el.closest('.quote-box, .dropdown, #pun-navlinks, .vote-list, .user-menu')) return;
    const username = el.textContent.trim();
    colorNick(el, username);
  });

  // 🏠 2. Ники на главной (например, в #onlinelist)
  if (CONFIG.enableIndexNickColoring && document.getElementById('onlinelist')) {
    document.querySelectorAll('#onlinelist a[href*="profile.php"]').forEach(el => {
      const username = el.textContent.trim();
      colorNick(el, username);
    });
  }
}


  // =========================
  // 🎨 Покраска мини-профиля
  // =========================
  function recolorMiniProfile(scope=document){
    CONFIG.miniProfileSelectors.forEach(function(sel){
      scope.querySelectorAll(sel).forEach(function(el){
        if(el.dataset.mpRecolored) return; // Уже перекрашен
        let html = el.innerHTML;
        Object.entries(CONFIG.miniProfileColors).forEach(function([name,obj]){
          const [base,hover] = obj.color;
          if(html.includes(name)){
            // Заменяем текст на span с цветами
            html = html.replace(name,
              '<span data-base="'+base+'" data-hover="'+hover+'" style="font-weight:bold;color:'+base+';">'+name+'</span>'
            );
          }
        });
        el.innerHTML = html;
        el.dataset.mpRecolored = 'true'; // Отмечаем как обработанный
      });
    });
  }

  // =========================
  // 🎨 Универсальная перекраска всего (посты + мини-профиль)
  // =========================
  function recolorAll(scope=document){
    recolorPostNicks(JSON.parse(localStorage.getItem('UsersAdmList')?.split('|')[1] || '[]'), scope);
    recolorMiniProfile(scope);
  }

  // =========================
  // 🌐 Получение пользователей через API
  // =========================
  function fetchUsersAndRecolor(force=false, scope=document){
    var key='UsersAdmList';
    var now=Math.floor(Date.now()/1000);
    var cached=localStorage.getItem(key);

    if(cached && !force){
      try{
        var arr=cached.split('|');
        if((now-parseInt(arr[0]))<24*3600){ // ⏱ кеш на 24 часа
          recolorAll(scope);
          return;
        }
      }catch(e){console.warn(e);}
    }

    // Запрос через API
    fetch('/api.php',{
      method:'POST',
      headers:{'Content-Type':'application/x-www-form-urlencoded'},
      body:new URLSearchParams({method:'users.get',limit:'500',fields:'user_id,username,group_id'})
    }).then(r=>r.json()).then(function(data){
      if(data?.response?.users){
        var users=data.response.users;
        localStorage.setItem(key,now+'|'+JSON.stringify(users)); // Сохраняем кеш
        recolorAll(scope);
      }
    }).catch(console.error);
  }

  // =========================
  // 👆 Hover — меняем цвет при наведении
  // =========================
  document.body.addEventListener('mouseover',function(e){
    var el = e.target.closest('span[data-base], a[data-base-color]');
    if(el) el.style.color = el.dataset.hoverColor || el.dataset.hover || el.style.color;
  });
  document.body.addEventListener('mouseout',function(e){
    var el = e.target.closest('span[data-base], a[data-base-color]');
    if(el) el.style.color = el.dataset.baseColor || el.dataset.base || el.style.color;
  });

  // =========================
  // ⏳ Планирование обновления через requestAnimationFrame или setTimeout
  // =========================
  let scheduled = false;
  function scheduleUpdate(){
    if(scheduled) return;
    scheduled = true;
    if(CONFIG.observerDelay === 0){
      requestAnimationFrame(()=>{ ChangeAll(); recolorAll(); scheduled=false; });
    } else {
      setTimeout(()=>{ ChangeAll(); recolorAll(); scheduled=false; }, CONFIG.observerDelay);
    }
  }

  // =========================
  // 👁 MutationObserver — следим за изменениями DOM и автоматически перекрашиваем новые элементы
  // =========================
  const observer = new MutationObserver(()=>scheduleUpdate());
  observer.observe(document.body,{childList:true,subtree:true});

  // =========================
  // ▶ Инициализация при загрузке страницы
  // =========================
  ChangeAll();
  fetchUsersAndRecolor();

  // =========================
  // 🆕 Live-подгрузка новых постов
  // =========================
  document.addEventListener('pun_post',function(e){
    var scope = e.detail?.post || document.body;
    ChangeAll(scope);
    fetchUsersAndRecolor(true, scope); // форсируем обновление при новых постах
  });

});
</script>
<!-- Конец: Универсальный скрипт замены © Merlin777 kuban.mybb.ru -->

📄 Краткое текстовое описание работы скрипта по пунктам

1. Загрузка и конфигурация:

  • Скрипт выполняется после полной загрузки страницы (DOMContentLoaded).

  • В объекте CONFIG настраиваются:

  • текстовые автозамены (смайлики и подписи),

  • цвета групп (для ников),

  • цвета мини-профиля,

  • включение/отключение покраски на главной странице (enableIndexNickColoring),

  • задержка обновлений (через observerDelay),

  • список селекторов, в которых производится автозамена текста.

2. Замена текста (ChangeAll):

Заменяет стандартные подписи (например, "Профиль" → "👤Профиль") в:

  • мини-профилях,

  • кнопках постов,

  • элементах шапки/меню (если указано в селекторах).

Каждый элемент помечается data-changed="true", чтобы не заменять повторно.

3. Перекраска ников (recolorUsers и recolorPostNicks):

Загружает список пользователей с группами из:

  • localStorage (если кэш свежий),

  • либо через запрос к API форума.

  • Красит только ники в постах:

.post a[href^="javascript:to("] — ссылки на ники внутри тем.

  • Исключает ненужные области (шапка, цитаты, меню, dropdown'ы и т.п.).

  • Если включено enableIndexNickColoring, то красит ники в блоке #onlinelist на главной странице.

  • Поддерживает hover-эффект (цвет меняется при наведении).

4. Перекраска мини-профиля (recolorMiniProfile):

  • Красит элементы мини-профиля:

li.pa-title, li.pa-fld1, li.pa-fld2, и т.д.

Цвет задаётся в CONFIG.groupProfileColors по group_id.

  • Также поддерживает hover-эффект.

5. Объединённая функция перекраски (recolorAll):

  • Вызывает recolorPostNicks и recolorMiniProfile вместе.

  • Упрощает вызов в MutationObserver и при подгрузке новых сообщений.

6. Hover через делегирование:

  • На body навешиваются события mouseover и mouseout.

  • Отслеживаются все элементы с data-base или data-base-color.

  • При наведении цвет меняется на hover-цвет, при уходе — возвращается.

7. Обновление при динамических изменениях (MutationObserver):

  • Следит за изменениями в document.body.

  • Вызывает scheduleUpdate, который:

  • запускает обновление через requestAnimationFrame (если observerDelay: 0),

  • или через setTimeout (если указана задержка).

  • Позволяет скрипту корректно обрабатывать любые подгрузки и изменения DOM.

8. AJAX события (pun_post):

При событии pun_post (используется live-подгрузка на форуме):

  • вызывается scheduleUpdate() — обновляет DOM,

  • и fetchAndColor(true) — принудительно обновляет список пользователей и перекраску.

Это гарантирует, что все новые сообщения получают раскраску, как старые.

9. Кэширование пользователей (fetchAndColor):

  • Пользователи с username и group_id сохраняются в localStorage.

  • Кэш действует 24 часа (86400 секунд).

  • Это минимизирует запросы и ускоряет загрузку скрипта.

Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0

4

Администрирование - Формы - Правила

Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0

5

Администрирование - Формы - Объявление

Объявление
Код:
<b>
    <font color="brown">
Будь как дома, путник (с)КиШ
</font>
</b>
Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0

6

Администрирование - Формы - HTML в форме ответа

WYSI - визуальный редактор сообщений
Код:
<!-- WYSI - визуальный редактор сообщений © Alex_63, 2024 -->
<link rel="stylesheet" type="text/css" href="https://forumstatic.ru/f/ru/bestbb/wysi.css" />
<script type="text/javascript" src="https://forumstatic.ru/f/ru/bestbb/wysi.js"></script>
<script type="text/javascript" src="https://forumstatic.ru/f/su/1bb/bbquote.custom_quotes.js?v=1"></script>
<!-- WYSI - визуальный редактор сообщений © Alex_63, 2024 -->

Примечание: визуальный редактор необходимо активировать письмом к Alex_63.

Форма ответа: Обработка кастомных тегов в визуальном редакторе
Код:
<!-- Форма ответа: Обработка кастомных тегов в визуальном редакторе -->
<script>
WYSI.extend({
    'indent': ['.custom_tag_indent', '[indent]', '']
});
</script>
<!-- Форма ответа: Обработка кастомных тегов в визуальном редакторе -->
Ударные гласные
Код:
<!--//Начало//Ударные гласные-->
<style>
@media screen and (min-width: 540px) {
    body
details{
    float: right;
  display:block;
  background: #afc2d4;
  width:300px;
  box-shadow: 0 10px 15px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border-radius: 8px;
  overflow:hidden;
  margin-bottom: 1.5rem;
}
summary::-webkit-details-marker{display:none;}
summary::-moz-list-bullet{list-style-type:none;}
summary::marker{display:none;} 
summary {
   display:block;
   padding: .3em 1em .3em .9em;
   border-bottom: 1px solid #e2e8f0;
   font-size:1.1em;
   cursor: pointer;
   position: relative;
}
summary:before {  
  top: .4em;
  right: .3em;
  color: transparent;
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=") no-repeat 50% 50% / 1em 1em;
  width: 1em;
  height: 1em;  
  content: "";
  position: absolute;
  transition: transform .5s;
}
details[open] > summary:before {
  transform: scale(1,-1);
}
summary ~ * {
   padding: 0 1em 10px 1.4em;
}
details[open] summary ~ *{ 
  animation: sweep .5s ease-in-out;
}
@keyframes sweep {
  0%    {opacity: 0;}
  100%  {opacity: 1;}
}
summary:focus {
  outline:0;
  box-shadow: inset 0 0 1px rgba(0,0,0,0.3), inset 0 0 2px rgba(0,0,0,0.3);
}
}
</style>


<details>
    <summary>Вставить ударные гласные</summary>
<center>
<input type="button" value="А́" name="H" title="А́" onclick="bbcode('А́','')" />
<input type="button" value="а́" name="H" title="а́" onclick="bbcode('а́','')" />
<input type="button" value="Е́" name="H" title="Е́" onclick="bbcode('Е́','')" />
<input type="button" value="е́" name="H" title="е́" onclick="bbcode('е́','')" />
<input type="button" value="И́" name="H" title="И́" onclick="bbcode('И́','')" />
<input type="button" value="и́" name="H" title="и́" onclick="bbcode('и́','')" />
<input type="button" value="О́" name="H" title="О́" onclick="bbcode('О́','')" />
<input type="button" value="о́" name="H" title="о́" onclick="bbcode('о́','')" />
<input type="button" value="У́" name="H" title="У́" onclick="bbcode('У́','')" />
<input type="button" value="у́" name="H" title="у́" onclick="bbcode('у́','')" />
<input type="button" value="Ы́" name="H" title="Ы́" onclick="bbcode('Ы́','')" />
<input type="button" value="ы́" name="H" title="ы́" onclick="bbcode('ы́','')" />
<input type="button" value="Э́" name="H" title="Э́" onclick="bbcode('Э́','')" />
<input type="button" value="э́" name="H" title="э́" onclick="bbcode('э́','')" />
<input type="button" value="Ю́" name="H" title="Ю́" onclick="bbcode('Ю́','')" />
<input type="button" value="ю́" name="H" title="ю́" onclick="bbcode('ю́','')" />
<input type="button" value="Я́" name="H" title="Я́" onclick="bbcode('Я́','')" />
<input type="button" value="я́" name="H" title="я́" onclick="bbcode('я́','')" />
</center>
</details>
<!--//Конец//Ударные гласные-->
Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0

7

Администрирование - Формы - Пользовательские bb-теги

Пользовательские bb-теги
Код:
indent:sito
voice[figure.postvoice]:mto

Пояснение: первая строчка - добавляет новый bb-код, позволяющий скрывать мини-профиль, а вторая - добавляет кнопку с микрофоном.
Обе строчки работают с соответствующими скриптами.

Подпись автора

Функционал форума Книга жалоб Книга предложений Знак зодиака Как вставить видео на форум Форум"Грибные места" Слайдер для картинок Live-box с темами

0


Вы здесь » kuban-forum.ru - Лучший форум для общения » 🛠️Технические вопросы работы форума » Исходные коды модификации этого форума.