Единый форум поддержки

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

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


Вы здесь » Единый форум поддержки » Новые возможности форумов » Скрипты от пользователей 3


Скрипты от пользователей 3

Сообщений 421 страница 440 из 569

1

Администрация MyBB не гарантирует работоспособность данных скриптов, вы ставите их на свой страх и риск.

Для тех кто выкладывает скрипты:
1) Дайте краткое описание скрипта.
2) Обязательно укажите куда его вставлять.
3) Сам скрипт вставьте в bb-коды [сode] [/сode] или в [quotе] [/quotе]

Авторы скриптов, размещающие свои разработки на бесплатной и добровольной основе, оставляют за собой право в любой момент вносить в них изменения на своё усмотрение (в том числе: обновление с целью улучшения функционала и стабильности; изъятие из публичного пользования; включение рекомендательных интеграций, содержащих информацию о других разработках, относящихся к MyBB). Скрипты предоставляются авторами "как есть" и без каких-либо гарантий, высказанных или подразумеваемых. При этом размещаемый скрипт должен соответствовать условиям Пользовательского соглашения, не содержать вредоносного кода и не использоваться для рекламы и продвижения сторонних ресурсов, не относящихся к MyBB.

Пользователь, устанавливающий скрипт к себе на форум, имеет право сохранить копию скрипта, в том числе в файлы форума (если в описании к скрипту не указано иное) и использовать эту копию вместо оригинального файла. Однако следует понимать, что такая копия будет лишена каких-либо обновлений и может перестать работать вследствие изменений на сервисе. По этой причине рекомендуется использовать оригинальные версии скриптов, за исключением случаев крайней необходимости.

Данные правила относятся ко всем свободно распространяемым скриптам, размещаемым как в этой теме, так и в других темах раздела Новые возможности форумов.

В данной теме запрещено задавать вопросы и просить скрипты. Для этого есть раздел  Запросы по скриптам[10], при нарушение данного правила будет выдаваться предупреждение в профиль.

Отредактировано Alex_63 (Пт, 14 Мар 2025 11:28:27)

+8

421

Защита от копирования контента на своих страницах

http://sh.uploads.ru/C4Eid.png

Установка:
1. Ставим скрипт: ПОДФОРУМЫ с Автоматической Установкой
Если скрипт уже установлен, - пропускаем этот шаг
2. Ставим в контейнер-дополнение для HTML низ в Админке такой скрипт:

<script src="http://forumstatic.ru/files/0015/c4/3f/66206.js"></script>


Пояснения:

Если скрипт Подфорумов с автоматической установкой ставим впервые, - должен получиться такой код:
в HTML верх:

<noscript data="html_footer">
<!-- Контент HTML низ в Админке -->
<script src="http://forumstatic.ru/files/0015/c4/3f/66206.js"></script>
</noscript>

<!-- Подфорумы "не скриптом" © Alex_63 / Ч.1 в начало HTML верх -->
<script type="text/javascript">var SUBF = {},SUBFset = {};
// Настройки скрипта //

SUBF.icon_old = 'http://forumstatic.ru/files/0016/4f/7e/12924.jpg';  // Иконка подфорумов без новых сообщений
SUBF.icon_new = '
http://forumstatic.ru/files/0016/4f/7e/75803.jpg';  // Иконка подфорумов с новыми сообщениями
SUBF.d_title = '
Подфорумы:'  // Текст в заголовке секции подфорумов
SUBF.category_link =
0; // Кликабельность категорий: 0 - отключена, 1 - включена

SUBFset.enable_subf = 1; // Установка подфорумов: 0 - ручная, 1 - автоматическая

$(document).ready(function(){$('#navadmin>a').attr('href','/admin/index');});
if(document.URL.indexOf('/admin/')!=-1)(function(){var s='<script type="text/javascript" src="',
e='"></'+'script>',l='http://forumstatic.ru/files/0016/4f/7e/40123.js';document.write(s+l+e);}());
</script><link rel="stylesheet" type="text/css" href="//forumstatic.ru/files/0016/4f/7e/73859.css"/>
<script type="text/javascript" src="http://forumstatic.ru/files/0016/4f/7e/73858.js"></script>

в HTML низ:

<!-- Подфорумы "не скриптом" © Alex_63 / Ч.2 в начало HTML низ -->
<script type="text/javascript">setSubforums()</script>

в конец Первого окна стилей (если свой стиль отключен, - не ставим эту часть)

/************* Автоустановка Подфорумов | Add styles *************/
.punbb-admin:not(.admin-visible)::before {
  content: "Вы вошли в панель администрирования без надстроек. Автоматическая установка подфорумов отключена.";
  color: #c22d2d; display: block; text-align: center; border: solid 1px #d48f8f; padding: 5px; margin-bottom: 5px; background: #f8e5e5;
}


Для активации защиты от копирования на конкретной странице, - заходим в Администрирование - Страницы, жмем "Редактировать" у нужной страницы, в блоке Запрет копирования выбираем Да, жмем "Сохранить".


Тестируем, отписываемся в Запросы по скриптам[7]

+4

422

К скрипту: Спойлер с открытием за оценку

Дополнение:  Автоматическое оценивание поста по клику на скрытый спойлер

В HTML верх или низ:

<script><!--Автоклик на оценку-->
$(document).ready(function(){$(".sp-for-vote > div").click(function(){if($(this).next("blockquote").hasClass("no-visible")){
$(this).parents(".post").find(".post-vote a[href*='&v=1']").click();};});});
</script>

+3

423

Столкнулся с проблемой, - при отправке ЛС с незакрытыми тегами цитаты и кода
выдается сообщение об ошибке и набранный текст теряется,                                   
Этот скрипт - попытка предотвратить потерю текста в подобных случаях:           

Уведомление о незакрытых тегах при отправке ЛС

http://s2.uploads.ru/03DCE.png

В HTML верх или низ:

<script><!--Уведомление о незакрытых тегах при отправке ЛС-->
if($("#pun-messages").length){$(document).ready(function(){$("#post .button[name='submit']").live("click",function(){
var Stack=[[],[],[],[]];var Pattern=["[quote=|]","[/quote]","[code]","[/code]"];var L=$("#main-reply").val();var Msg=new Array();
for(var i=0;i<Pattern.length;i++ ){var patt=Pattern[i].replace(/([\[\]])/gim,"\\$1").replace(/\|/gim,"([^\\[\\]]+?)?");
var reg=new RegExp(patt.replace(/=/gim,"(?:=?)?"),"gim");L.replace(reg,function(str,offset,s){Stack[i].push(str)});};
if(Stack[0].length>Stack[1].length){Msg=["конечный","[quote]"];};if(Stack[1].length>Stack[0].length){Msg=["начальный","[/quote]"]};
if(Stack[2].length>Stack[3].length){Msg=["конечный","[code]"]};if(Stack[3].length>Stack[2].length){Msg=["начальный","[/code]"]};
if(!!Msg&&Msg[0]){alert("Синтаксис тегов BBCode в сообщении неправильный. Отсутствует "+Msg[0]+" тег для "+Msg[1]+".");
return false};});});};
</script>

+7

424

Обновлен скрипт
Регулировка размера шрифта в постах бегунком

Бегунок адаптирован под мобильные экраны (добавлены события для тачскринов)

+7

425

Обновлен скрипт
Быстрое редактирование постов V.3

Исправлен баг с отображением битых картинок в посте после редактирования

+4

426

Поскольку проблема с лишением права голосовать в опросе
после просмотра результатов остается актуальной,             
Сделал новый скрипт-правку, более надежный и быстрый   

"Безопасный" просмотр результатов опроса

Новая версия

http://s2.uploads.ru/RuAJU.png


Отличия от предыдущей версии от Deff:
  - Более быстрый вывод результатов опроса
  - Скрипт работает через гостевой фрейм с текущего форума, без использования проксирования через сторонние сервисы


В HTML верх

<!-- "Безопасный" просмотр результатов опроса © Alex_63 -->
<script src="http://forumstatic.ru/files/0015/c4/3f/67991.js"></script>


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

+2

427

Неактуально, реализовано от сервиса

Поскольку были просьбы как-то ускорить скрипт, сделал новую версию:

Полный профиль на странице profile.php V.2

С добавкой ссылок отправки ЛС - E-mail, в зависимости от допуска

http://s8.uploads.ru/FAtcj.png

В HTML верх

<!-- Просмотр полного профиля на странице /profile.php V.2 -->
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/44995.js"></script>

+4

428

Быстрая навигация по страницам

Новый вариант

http://s4.uploads.ru/bPLQ7.png


- Корректно отображается при любом количестве страниц (до 10000 и более);
- Работает не только в топике, но и на странице форумов, личных сообщений, в поиске;
- Пагинатор работает вверху и внизу страницы, вместо стандартной пагинации
- Имеется оранжевый маркер текущей страницы (см.скрин), при клике на который пагинатор возвращается в исходное положение
- Корректно работает во всех современных браузерах, включая мобильные


В HTML верх:

<!-- Быстрая навигация по страницам © Alex_63 --><style>
#pun .pagenav td{padding:0!important;border:none 0 transparent!important;vertical-align:top}
.page-wrap{display:inline-block;position:relative}.page-wrap a{display:inline-block;text-align:center;width:2em}
.page-wrap .first{margin-right:.6em;}.page-wrap .last{margin-left:.6em;}.page-wrap .first+.last{margin-left:-.6em}
.page-wrap a.current{color:#ff6c24;text-decoration:none;font-weight:700}.pagenav a.l3{transform:scaleX(.9)}
.pagenav a.l4{transform:scaleX(.8)}.pagenav a.l5{transform:scaleX(.7)}.pagenav a.l6{transform:scaleX(.6)}
.page-dt{display:none;position:absolute;transform:scaleX(.7)}.page-dt.visible{display:block;}
.page-dt.l{left:1.8em;}.page-dt.r{right:1.8em;}.page-wrap.f~.page-scroll{margin-left:1em;}
.page-scroll{height:10px;margin-top:3px;display:block;background:transparent;border-top:solid 3px #d4d4d4;margin-bottom:-10px;}
.page-scroll-thumb{position:relative;margin-top:-3px;height:10px;background:transparent;cursor:pointer;border-top:solid 3px rgba(0,0,0,.7)}
.page-scroll-marker{border-top:solid 3px #ff6c24;width:3px;height:6px;top:-13px;position:relative;cursor:pointer;z-index:6}
.linkst .pagelink,.linksb .pagelink{width:32em}.linkst .pagelink{margin-top:-.5em}
</style>

<script type="text/javascript" src="http://forumstatic.ru/files/0015/c4/3f/88373.js"></script>


Тестируем, отписываемся в теме Запросы по скриптам[7]

+8

429

Запрет просмотра Гостю профилей
пользователей некоторых групп

В конец HTML верх:

<script><!--Запрет просмотра профиля Модеров-Админов Гостям-->
if(GroupID==3&&document.URL.indexOf("/profile.php")!=-1){$.ajax({url:"/api.php",type:"POST",dataType:"json",
data:{method:"users.get",user_id:document.URL.replace(/^[^\[\]]+?id=(\d+)$/gim,"$1"),fields:"group_id"},
async:false,cache:false,success:function(data){var L=data.response.users[0].group_id;if([
1,2].indexOf(+L)!=-1){
$(document).ready(function(){var S='<h2><span>Информация</span></h2><div class="';
S+='info"><div class="container">Вы не имеете прав для доступа к этой странице</div></div>';
$("#pun-main").show().html(S)}).pun_mainReady(function(){$("#pun-main").hide()});};}});};
</script>

Красным - группы, просмотр профилей которых запрещаем Гостю.


Для надежности рекомендуется поставить Защиту от отключения JavaScript

+2

430

По просьбе Oriel, - написал такой скрипт:

Изменяем отображение Статистики на Главной

http://s7.uploads.ru/VvqNf.png

В HTML низ

<!--Изменяем отображение Статистики на Главной-->
<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>

Поправлено 15.09.2016

+2

431

Seiline написал(а):

Сейчас на некоторых  форумах есть такая фишка как запрет на редактирование первого сообщения в теме.
ТО есть тема открыта, все сообщения в ней можно редактировать или создавать новые автору, но вот свое первое сообщение в теме автор не может редактировать - только модераторы и админы.

Запрет редактирования постов в некоторых форумах
Проставляется по группам для каждого форума

В HTML верх:

<!-- Запрет редактирования постов в определенных форумах -->
<script type="text/javascript">
/* Запрет редактирования первого поста */
var FirstPost_NoEdit = {
//ID форума  //Группы с запретом

  22:    [4,6,7],
  14:    [4,5,6]  //!Последний элемент без запятой

}
var DisallowOnlyFirst =
1 ; // Запрет редактирования: 0 - всех постов, 1 - только первых постов
</script><style id="HideEdit1">.post .pl-edit,#pun-edit #post{display:none!important}</style>
<script type="text/javascript" src="http://forumstatic.ru/files/0015/c4/3f/81542.js"></script>


Установки:

Синим - ID форума, красным - номера групп, которым запрещаем редактирование в данном форуме


DisallowOnlyFirst  - Запрет редактирования: 0 - всех постов, 1 - только первых постов
Т.е если хотим запретить редактирование только первого поста темы - ставим 1, если всех постов - ставим 0

Тестируем, отписываемся

+2

432

Часто бывает нужно отключить простановку оценок                                           
в некоторых форумах (или темах) определенным пользователям или группам,
Для возможности гибкой настройки отключений написал такой скрипт:           

Запрет простановки репутации(оценки поста) в некоторых форумах

С расширенными настройками

В HTML верх

<!-- Запрет простановки репутации(оценки поста) в некоторых форумах -->
<script type="text/javascript" src="http://forumstatic.ru/files/0015/c4/3f/98416.js"></script>
<script>
  DisallowRespect('|
f2:g4,5; -f1:12; t33 |',100);
</script>


Установки:

DisallowRespect('| f2:g4,5; -f1:12; t33 |',100);

Выделенное красным - настройки запрета по темам/форумам и группам/пользователям,-
f2  - форум с ID = 2;
t33  - тема с ID = 33;
Если хотим отключить только минусы, - ставим - перед идентификатором:  -f1
После двоеточия : прописываем группы и ID пользователей с запретом
(Если хотим запретить репутацию для всех - ничего не прописываем)
g4  - группа с ID = 4 (все пользователи группы)
5  - пользователь с ID = 5
Записи разделяем точкой с запятой ; , как указано в примере

Выделенное синим - минимальное количество постов для снятия запрета,
Если у пользователя постов больше - запрет отключается! (Параметр необязательный, можно удалить)


Данную строку можно размножать, если хотим установить запреты на разное количество сообщений

Тестируем, отписываемся

+4

433

Код неактуален, реализовано от сервиса (Администрирование - Группы - Редактировать, Интервал редактирования (удаления) сообщений - для нужных групп),
изъят 23.11.2024

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

Ограничение возможности редактирования и удаления
      по времени
  V.2

http://sa.uploads.ru/qSUPE.png


- Вариант реализации не привязан к Cookies, - работает с любого браузера/компьютера
- Ограничения от скрипта обойти невозможно, даже отключив JavaScript (с отключенным JS в браузере форма не отправится)
- Есть возможность задавать ограничения отдельно на редактирование и удаление


В HTML верх

<!-- Ограничение редактирования/удаления по времени -->
<script type="text/javascript">
var timeLimits = {};     // => ограничения по времени - в минутах
//===========================//
timeLimits.edit_time     =
120;  // время редактирования (макс.3600)
timeLimits.edit_groups   = [
4,5,6];  // группы с ограничением редактирования

timeLimits.delete_time   =
90;  // время удаления (макс.3600)
timeLimits.delete_groups = [
4,5,6,7];  // группы с ограничением удаления

timeLimits.no_limit_id   = [
342,608];  // пользователи со снятием ограничений
//===========================//
</script><script src="https://forumstatic.ru/files/0015/c4/3f/24801.js"></script>
<style id="hide_edit01">li.pl-edit,li.pl-delete{display:none!important}</style>
<style id="hide_edit02">#pun-edit #post,#pun-delete form{display:none}</style>
<script type="text/javascript">timeLimits.enable()</script>


Установки:

Все ограничения устанавливаются в минутах!


timeLimits.edit_time  - время, в течение которого можно отредактировать пост (макс. 3600)
timeLimits.edit_groups  - номера групп, на которые действует ограничение редактирования (через запятую)

timeLimits.delete_time  - время, в течение которого можно удалить пост (макс. 3600)
timeLimits.delete_groups  - номера групп, на которые действует ограничение удаления (через запятую)

timeLimits.no_limit_id  - ID пользователей (в группах с ограничениями), для которых ограничения снимаются


Если нужно отключить какое-либо из ограничений - можно прописать значение времени, равное -1, либо оставить пустым массив с ID групп для данного ограничения.

+6

434

toxygen написал(а):

Мне нужно, чтобы тема форума была указана над каждым комментарием в этой теме, а не только время.

Добавка ссылки на тему(с названием) к заголовку поста

http://sf.uploads.ru/Nwhx1.png

В HTML низ

<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='<div class="TopicLnk" style="font-weight:bold">Re: <a href="';
  s3+=s1+'">'+s2+'</a></div>';$(".post h3>span").each(function(){
  if($(this).parents(".post").hasClass("topicpost")){$(this).prepend(s3.replace("Re: ",""));
  }else{$(this).prepend(s3);};});}
</script>

+5

435

Вариант оформления регулятора шрифта с картинками заменен на новый,
в связи с изъятием графики для предыдущего из публичного использования по обращению правообладателя
http://funkyimg.com/i/2itw8.png


Спасибо Lidia-Lada за реализацию графики для нового варианта оформления!

+2

436

Смена аватара в топике

(Для текущего юзера, - форма появляется по клику на аватар в посте)

Идея Deff, реализация Deff, Alex_63

http://s3.uploads.ru/t9Rus.png

В HTML верх

<!-- Смена аватара в топике (в HTML верх) © Deff, Alex_63 -->
<link rel="stylesheet" type="text/css" href="http://forumstatic.ru/files/0015/c4/3f/67168.css" />
<script type="text/javascript" src="http://forumstatic.ru/files/0015/c4/3f/67169.js"></script>


Дополнение: Запрет загрузки/изменения аватарки для некоторых пользователей (к примеру, для пиар-аккаунта)
Ставим в HTML верх перед скриптом Смены аватара:

<!-- Запрет изменения аватарки --><script type="text/javascript">
var NoChangeAvatar = ['
ban1', 'ban2']; //Пользователи с запретом изменения аватарки
</script>

Вместо красного - вводим нужные ники (которым будет запрещено менять аватар), в одинарных кавычках через запятую.

+6

437

Модераторские теги
Поправлен стиль оформления
(для возможности вставки длинного текста в модераторские предупреждения,
- поправлена корректность отображения)


Скриншот:
http://se.uploads.ru/UZDAM.jpg

+4

438

Дополнение к скрипту "Смена аватара в топике"

Смена аватара по клику на иконку

© Deff

http://sf.uploads.ru/3JALs.png

В HTML низ:

<style>
.post-author img.clk-imag{
  cursor:pointer;
  display:block;
  position:absolute;
  z-index:1000;
  margin-top:
-33px;  /*Наезд на Авик снизу*/
  margin-left:
-27px; /* Сдвиг левее */
}
</style>

<script>
$(document).ready(function(){
var img_click = "
http://funkyimg.com/i/2jFxE.png"; //Ccылка на картинку;
$('.pa-avatar img[title="Сменить аватар"]').parents('.pa-avatar').after('<img  class="clk-imag" src="'+img_click+'" title="Cменить аватар?"/>');
$('.pa-avatar+.clk-imag').click(function(){$(this).prev('.pa-avatar').find('img[alt][title="Сменить аватар"]').click()});});
</script>

+4

439

Запрет просмотра профилей Гостем

Новый вариант, с защитой от отключения JavaScript

http://se.uploads.ru/S345b.png

В HTML верх:

<!-- Скрываем профиль от гостей -->
<style id="HideProfile">.gid3 #pun-profile .main{display:none}</style>
<script type="text/javascript">
if(self==top&&GroupID==3&&$('#pun-profile').length)$().pun_mainReady(function(){
var s='Информация',s1=$('#pun-title h1>span').text();document.title=s1;
var L=' »&nbsp;<a href="/">'+s1+'</a> »&nbsp;'+s;$('.crumbs').html(L);
$().pun_aboutReady(function(){$('#pun-crumbs2>.crumbs').html(L);});
$('#pun-main').html('<h1><span>'+s+'</span></h1><div class=info>\
<div class=container>Вы не имеете прав для доступа к этой странице.\
</div></div>');$('style#HideProfile').remove();});
</script>

+3

440

Мультитрековый плеер в постах (плеер с плейлситом) v1.0

http://sg.uploads.ru/tFc1X.gif

Музыка в постах

+5


Вы здесь » Единый форум поддержки » Новые возможности форумов » Скрипты от пользователей 3