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

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

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


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


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

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

1

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

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

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

Отредактировано Alex_63 (Ср, 12 Фев 2020 20:35:57)

+8

421

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

Вывод похожих тем при создании темы  V.2

http://s7.uploads.ru/ZhCgu.jpg


В этой версии:
  - Блок похожих тем выводится при наборе / удалении текста в поле заголовка
  - Добавлен ник автора каждой из выводимых тем
  - Поправлен стиль блока с темами
  - Количество выводимых тем увеличено до 10 (Выводятся 10 самых свежих)


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

<!-- Вывод похожих тем при создании темы / V.2 © Alex_63 -->
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/54632.js"></script>


Скрипт добавлен в раздел Администрирование - Скрипты от сервиса => 20 июня 2017: Новые скрипты от сервиса (Администрирование - Скрипты)

+8

422

Просмотр местонахождения пользователя
по наведению на ник в строке Активных

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

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

<!-- Просмотр местонахождения пользователя -->
<script src="https://forumstatic.ru/files/0015/c4/3f/96023.js"></script>


Скрипт добавлен в раздел Администрирование - Скрипты от сервиса => 20 июня 2017: Новые скрипты от сервиса (Администрирование - Скрипты)

+9

423

Не скрипт, но востребовано,
Поскольку каждый из предыдущих вариантов имел свои минусы,
предлагаю такую реализацию:

Защита от отключения JavaScript на CSS

http://s2.uploads.ru/5F1vn.png

В HTML верх

<noscript><link rel="stylesheet" href="https://forumstatic.ru/files/0016/0b/c8/13249.css" /></noscript>

+11

424

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

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

http://s0.uploads.ru/EgOrn.png


Действие скрипта:
Чтобы вставить в форму ответа тег скрытого спойлера, нужно выделить сворачиваемый текст и нажать на кнопку http://sf.uploads.ru/2d89p.png.
Для того чтобы просмотреть свернутый текст, пользователь должен проголосовать за сообщение, в котором находится спойлер.
Для модераторов форума, где находится пост, и администраторов - ограничений на просмотр спойлера(ов) нет. Автор поста также может просматривать скрытые спойлеры в своем посте.


В HTML верх:

<!-- Спойлер с открытием за оценку © Alex_63 -->
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/88421.js"></script>


Дополнение: Меняем текст в заголовке спойлера на свой
В HTML низ:

<script>$('.sp-for-vote>div>b').text('Чтобы увидеть ссылку, нажмите спасибо')</script>

Вместо красного - вводим свой текст.

Вариант 2: Вставляем свой HTML в заголовок(текст, картинку, ...)
В HTML низ

<script>$('.sp-for-vote>div').html('<img src="картинка" /> Ваш текст')</script>

Красным - Ваш контент, который может содержать HTML (вписываем в одну строку, без переносов!)


Тестируем

+8

425

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

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

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

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


Пояснения:

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

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

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

SUBF.icon_old = 'https://forumstatic.ru/files/0016/4f/7e/12924.jpg';  // Иконка подфорумов без новых сообщений
SUBF.icon_new = '
https://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='https://forumstatic.ru/files/0016/4f/7e/40123.js';document.write(s+l+e);}());
</script><link rel="stylesheet" type="text/css" href="https://forumstatic.ru/files/0016/4f/7e/73859.css"/>
<script type="text/javascript" src="https://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

426

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

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

В 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

427

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

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

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

428

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

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

+7

429

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

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

+4

430

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

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

Новая версия

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


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


В HTML верх

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


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

+2

431

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

Полный профиль на странице 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

432

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

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

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="https://forumstatic.ru/files/0015/c4/3f/88373.js"></script>


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

+8

433

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

В конец 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

434

По просьбе 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

+1

435

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="https://forumstatic.ru/files/0015/c4/3f/81542.js"></script>


Установки:

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


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

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

+2

436

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

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

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

В HTML верх

<!-- Запрет простановки репутации(оценки поста) в некоторых форумах -->
<script type="text/javascript" src="https://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

437

Давно обещал сделать возможность ограничения
редактирования и удаления по времени, без привязки к 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

438

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

439

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


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

+2

440

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

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

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

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

В HTML верх

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


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

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

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

+6


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