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

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

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


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


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

Сообщений 461 страница 480 из 569

1

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

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

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

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

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

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

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

+8

461

Обновление для скрипта "маски" профиля.

С момента последней публикации здесь за три патча поправлены баги:
• Диалог маски не отображался на страницах редактирования сообщений / создания новой темы. Теперь отображается и корректно работает.
• Объёмные маски в какой-то момент переставали сохраняться. Теперь сохраняются все.
• Спецсимволы в статусах / никах отображались как код. Теперь отображаются как положено.

Что добавилось:
• Появился особый css-класс для профилей под маской. Теперь можно выделить их через стили.
• Диалог маски скрывается по нажатию esc.
• Есть возможность удалить из хранилища сразу все маски.
• Кроме текстовых и html кастомных полей появился тип bbcode. Теперь можно ограничить возможность пользователей в редактировании ЛЗ одними bb-кодами. В предпросмотре маски основные bb-теги отображаются корректно.
• По отдельной просьбе выложен исходный неминифицированный и неоптимизированный под ES5 код.

+5

462

Идея выделять посты с обращением предложена Shark с форума tobath.ru,
Поскольку мысль интересная, решил сделать для всего сервиса                     

Выделение постов с обращением к текущему нику
http://sa.uploads.ru/B4UcQ.png

В HTML низ

<!-- Выделение постов с обращением к текущему нику-->
<style type="text/css">
.post.replied_me {
  box-shadow: 0 0 10px rgba(255,0,0,.5);
}
</style>

<script type="text/javascript">
if(GroupID!=3&&$("#pun-viewtopic").length)(function(){
var reg1 = new RegExp("^"+UserLogin+"\\s*","gim");
var reg2 = new RegExp("^"+UserLogin+"\\s*\\n+","gim");
var reg3 = new RegExp("^"+UserLogin+"\\s*,\\s*","gim");
$(".post-content").map(function(){ var cnt = $(this).html().replace(/\n/g,"")
  .replace(/<\/(p|cite)><(p|blockquote|div).*?>/gim,"\n\n");
  cnt = cnt.replace(/<br>/gim,"\n").replace(/&nbsp;/gim," ");
  cnt = $.trim(cnt.replace(/<.+?>/gim,""));// console.log(cnt);
  if(cnt.match(reg1)||cnt.match(reg2)||cnt.match(reg3)){
    $(this).parents(".post").addClass("replied_me");
};});}());
</script>

Поправлено 20.03.2017


Выделенный пост имеет класс .replied_me, можно задать ему свое оформление,
К примеру: Перекрашиваем фон поста с обращением(ставим в первый код из данного поста перед </style>)

.replied_me .post-body,
.replied_me >.container,
.replied_me >h3,.replied_me >h3> span,
.replied_me .post-links {
  background:rgb(238,247,243)!important;
}

Цвет ставим свой вместо красного.

+5

463

В связи с последним обновлением браузеров Chromium и Firefox,     
перестал функционировать старый скрипт выделения кода             
от mkusher, - сваял вариант-поправку, дополнительно сократив:

Новое выделение кода в блоке "Код"
(версия 2017)
http://sa.uploads.ru/vN9eW.png

В HTML верх:

<!-- Выделение кода в блоке "Код" // © Alex_63, версия 2017г. -->
<script type="text/javascript" src="http://forumstatic.ru/files/0015/c4/3f/26102.js"></script>
<script type="text/javascript">select_text.linkText = '
Выделить код' //текст ссылки</script>

Красным - Ваша надпись на ссылке, по умолчанию - "Выделить код".


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


Внимание:

Старый код из HTML низ

Код
Код:
<script type="text/javascript">
function select_text(elem) {
	if(window.getSelection) {   
var s=window.getSelection();   
if(s.setBaseAndExtent){   
	s.setBaseAndExtent(elem,0,elem,elem.innerText.length-1);   
}
else {   
	var r=document.createRange();   
	r.selectNodeContents(elem);   
	s.removeAllRanges();   
	s.addRange(r);
}   
	}
	else if(document.getSelection){   
var s=document.getSelection();   
var r=document.createRange();   
r.selectNodeContents(elem);   
s.removeAllRanges();   
s.addRange(r);   
	}
	else if(document.selection){   
var r=document.body.createTextRange();   
r.moveToElementText(elem);   
r.select();
	}   
}
</script>
<script type="text/javascript">
var div = document.getElementById('pun-main').getElementsByTagName('div');
for(x in div){
	if(div[x].className=='code-box'){
div[x].getElementsByTagName('strong')[0].innerHTML = '<a href="#" onclick="select_text(this.parentNode.parentNode.childNodes[1].getElementsByTagName(\'pre\')[0]); return false;">Выделить код</a>';
	}
}
</script>

- Убираем!

+19

464

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

Доброго дня уважаемые. Возник такой вопрос, можно ли сделать так, чтобы модератор  на форуме - который он Не модерирует  не мог видеть скрытый текст ?
То есть в своём форуме - видит. На другом форуме, где не его модерация - не видит .

Запрет просмотра Скрытого текста модераторам
в немодерируемых форумах

(т.е. в тех, где данный модератор не имеет модер-прав)

© Deff

В HTML верх

<script> $().pun_mainReady(function(){ // В HTML верх, Скрытие(от модера) скрытого текста в немодерируемых форумах;
if(GroupID==2 && !$('#topic-modmenu').length)$('.quote-box>cite:contains("Скрытый текст:")')
.next().html('<p> Скрытый текст доступен лишь АМС данного форума</p>');});
</script>

+3

465

Обновлен скрипт HTML в постах с допуском по группам

- Добавлена совместимость со старой версией скрипта, где использовался тег [code]<!--HTML-->[/code]
- Исправлена ошибка с допуском всех групп к использованию HTML в постах
- Исправлен вид сообщения в случае, если HTML в постах пытается использовать юзер без допуска к скрипту

Напоминаем, что при использовании скрипта HTML в постах допускается теоретическая возможность, что пользователи из групп с разрешением использования(по умолчанию это модераторы) могут использовать возможность вставки HTML для различных целей, в том числе возможной кражи пароля главного администратора и т.п.

Старый вариант HTML в постах в скором времени будет отключен на форумах, рекомендуется его заменить на новый
Код:
<script type="text/javascript">
function Transform_Code_Box_in_HTML(aX){
var TemLnk=aX.replace(/^(.*viewtopic\.php\?id=\d*).*$/ig,"$1");
var PstId=aX.replace(/^.*viewtopic\.php\?id=.*(#p\d+)$/ig,"$1");
var L=document.URL.replace(TemLnk,'');
if(L!=document.URL&&(L.slice(0,1)).search(/\d/ig)==-1 ){ 
L=$("div.topic "+PstId);
if(L.length==1){
var Lhtm=L.find(".post-content .code-box:first .scrollbox pre").text();
L.find(".post-content .code-box:first").replaceWith(Lhtm)
}}}
function Demo_HTML(Ts){var Ll=Ts.parents(".htmldemo").find(".code-box .scrollbox pre").text();
Ts.parents(".htmldemo").after('<div class="demHtml">'+Ll+'</div>');Ts.replaceWith(DemoButt0);
}
$(document).ready(function() {
$("#pun-viewtopic .post .code-box").each(function(){
if($(this).text().indexOf('<!--HTML-->')!=-1){
$(this).wrap('<div class="htmldemo"></div>')
$(this).replaceWith($('.htmldemo').text().split('<!--HTML-->')[1]);
}
});
});
</script>

+1

466

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

Возник вопрос - есть ли такой скрипт и, если нет, то реализуемый ли он вообще.
На словах просто: на иконке "нового сообщения" на главной странице форума, чтобы отображалось число, которое бы показывало, в скольких темах раздела есть новые сообщения

Количество непрочитанных тем в каждом форуме (на Главной)
http://sg.uploads.ru/Fhr3y.png

Неактуально

В HTML низ:

<!-- Кол-во новых тем в форумах © Alex_63 -->
<style>
.icon[data-new-topics]:before,
.subforums span[data-new-topics]:before {
  content:attr(data-new-topics);
  display:inline-block;position:absolute;
  height:12px;line-height:12px;
  padding:2px;text-align:center;
  font-weight:700;font-size:.8em;
  background:#ff0000;
  color:#fff;border-radius:8px;
  margin:-6px;min-width:12px;
}
.subforums span[data-new-topics]:before {
  margin-left:-16px;margin-top:0;
  font-size:.7em;padding:1px;
}
</style>

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


Особенности
- Отображает количество непрочитанных тем на иконке форума на Главной, а также у подфорумов;
- При отсутствии непрочитанных(все темы просмотрели) - выделение с форумов на Главной снимается(т.е. дублируется действие скрипта Автоматическое снятие выделения с форумов на Главной при отсутствии выделенных тем в Активных темах, - при установке нового скрипта - старый скрипт(см ссылку) удаляем


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

+13

467

дублирую здесь на всякий случай

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

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

Подробнее - Музыка в постах

+7

468

Обновлен скрипт Цитирование с BB-кодами

Добавлена проверка на соответствие выделенного фрагмента цитируемому сообщению (в котором нажата кнопка цитаты). Теперь в случае, если выделен текст в одном сообщении, а цитирование нажато в другом, цитироваться будет то сообщение, в котором нажата кнопка. (Репорт от dana123)

+4

469

По просьбе Lusiya

Запрет перехода по ссылкам из сообщений для Гостей (с уведомлением)

http://s9.uploads.ru/jxirg.png

Скрипт (при входе под Гостем) заменяет названия ссылок в постах на стандартное "Перейти по ссылке"(см.скриншот) и при клике на такую ссылку выдает уведомление с просьбой авторизоваться, блокируя переход по ссылке.

Ставим В HTML низ:

<!-- Запрет перехода по ссылкам Гостю(с уведомлением) © Alex_63 -->
<style>.gid3 .post-content a{display:none}.gid3 .post-content a.Guest{display:inline-block}</style>
<script type="text/javascript" src="http://forumstatic.ru/files/0015/c4/3f/96302.js"></script>

+7

470

Поскольку скрипт безопасного HTML в постах от Deff устарел,
а ныне используемые скрипты имеют проблемы с безопасностью,
Предлагаю новый вариант безопасного HTML в постах, с полной
защитой от вмешательства на страницу и корректно работающей
простановкой высоты(появление прокрутки полностью исключено):

Безопасный HTML в постах
Новая версия

http://s5.uploads.ru/wWQXY.png

Поскольку скрипт полностью безопасен в использовании, использование функции разрешено всем группам, без ограничений.
- Запрещен доступ(и любое изменение) родительской страницы(страницы форума) скриптом из HTML-вставки, в целях безопасности;
- Запрещены модальные(всплывающие) окна, вызываемые скриптом из пользовательской HTML-вставки;
- Более быстрая подгрузка HTML по сравнению со скриптом безопасного HTML в постах от Deff (ссылка) и автозапуск;
- Высота HTML-вставки динамически подстраивается под содержимое(в отличие от предыдущего варианта безопасного HTML, см.ссылку выше);
- В HTML-вставке работают все стандартные BB-коды(включая цитаты, спойлеры и т.п.)


Неактуально

Код ставим в HTML верх:

<!-- Безопасный HTML в постах / © Alex_63 2017г. -->
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/67901.js"></script>


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

+9

471

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

Искал скрипт, позволяющий оставлять на форуме #хэштеги, которые можно оставлять в тексте и при нажатии на него чтобы как-либо показывались все сообщения, где люди оставляли такой же. Нашел только скрипт от Fover Запросы по скриптам[3] (пост 852) от 2015 года, но он нерабочий, работает через поиск непосредственно и постоянно поиск выдает "По вашему запросу ничего не найдено".

Хэштеги
http://s7.uploads.ru/P1d04.png

Поправленный вариант, работает корректно и ищет любые(практически) совпадения, не ломает структуру поста при наличии в нем спецсимволов и т.п., исключает срабатывания в блоке Код

В HTML верх

<!-- Хэштеги --><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>

Поправлено 14.06.2017 - теперь код не ломает ссылки в посте
Поправлено 25.06.2017 для случаев с несколькими блоками "Код" в посте


В поиске по хэштегу сообщения появляются не сразу, т.к. индексация работает не мгновенно, а каждые 15-20 минут(соответственно и посты появляются в поиске спустя это время)

+10

472

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

Расширенная функция переноса сообщений  V.3
http://s7.uploads.ru/RWnGo.png


Alex_63 в описании к предыдущей версии скрипта написал(а):

Описание работы скрипта:
Скрипт упрощает процесс переноса сообщений для модератора.
При клике на кнопку "Переместить" на странице выбора сообщений появляется окно, в котором можно выбрать форум и тему для переноса.
После того, как сообщения будут перемещены, появится сообщение об удачном переносе с предложением перейти в тему с перенесенными сообщениями или выбрать еще сообщения для переноса в текущей теме: http://s7.uploads.ru/wFTCe.png Т.е. после переноса можно еще перенести сообщения с текущей страницы, либо перейти на другую страницу данной темы.


Изменения в версии v.3:
  - ! Добавлена возможность поиска нужных тем по ключевым словам;
  - Ускорено срабатывание функции переноса(при отправке формы) за счет ajax-запроса вместо отправки во фрейм;
  - Поправлено оформление окошка переноса, реализовано адаптивное оформление;
  - Поправлена подгрузка постов с предыдущей/следующей страницы после переноса;
  - Универсализировано всплывающее окошко - теперь скрипт работает через сервисный плагин jQuery.mybbModal, добавлено закрытие окошка по нажатию ESC.


Неактуально

В HTML верх:

<!-- Расширенная функция переноса сообщений / v.3 © Alex_63 -->
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/61584.js"></script>


Тестируем!


P.S. - Если у Вас вычищены фоны и контейнер отображается прозрачным - ставим фон таким кодом:

.move_posts_form .container {
  background:#CCC0B1;
}

Вместо красного - Ваш нужный цвет для фона,
Код ставим в конец Второго Окна стилей, или(если отключен Свой стиль) в HTML верх в тегах <style></style>)

Дополнение:(скопировано из поста с версией v.2 скрипта) выделяем четные строки таблицы переноса (для лучшей визуализации)
В HTML верх

<style type="text/css">
.Select_Topics tbody tr:nth-child(2n) td{
  background:
rgba(255, 200, 0, 0.08);
}
</style>


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

+10

473

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

Хочу сделать ленту сообщений из скрипта последние сообщения.
Мне нужно чтобы последние темы форума были в 4-6 столбика.

Статистика последних сообщений в несколько столбцов
http://sg.uploads.ru/TA91b.png

В HTML низ, (если стоят скрипты Описаний к теме или Иконок для тем - Данный скрипт ставим выше второй части указанных скриптов!)

<!-- Последние N сообщений форума(в несколько столбцов) -->
<style>
.stats {padding:0!important;width:100%;border-top:none!important}
.stats th {text-align:left;}
.stats td {padding:.5em;border-top-style:solid;border-top-width:1px}
</style>

<script>var NumPosts = 18; //Количество выводимых сообщений (не более 20)
        var N_OnLine =
6;  //Кол-во Тем на одной строке
//=============================================================//
if($('#pun-index').length)document.write('<script src="/export.php?type=js&max='+NumPosts+6+'" \
type="text/javascript"><\/script>')</script><script type="text/javascript">
(function() {  var j = 0,html = '',html0 = '<div id=pun-debug class=section><h2><span>\
Последние сообщения форума</span></h2><table cellspacing="0" class="container stats">\
<tbody class="hasicon"><tr>';for(var i=0;i<content.length;i++){
  var s0=content[i][0],s1=content[i][1],s2=content[i][2],s3=content[i][3];
  var a = '<td>'+s1+'</td><td class="tcr"><a href="'+s2+'" target="_blank">'+s3+'</a><br/></td>';
  if(j%N_OnLine==N_OnLine-1)a+='</tr><tr>';
  if(s3.indexOf('·')!=-1||s3.indexOf('¬')!=-1){a=''}else{j++};if(j<=NumPosts)html+=a;
}   var b = html0+html+'</tr></tbody></table></div></div>'; $('#pun-ulinks').after(b);
var prc = (100/N_OnLine)/3,w1 = 'width:'+ prc +'%',w2 = 'width:'+ prc*2 +'%';
$('head').append('<style>#pun-debug .stats .tcl{'+w1+'}#pun-debug .stats .tcr{'+w2+'}</style>')}());
</script>

+5

474

Автоматическая разбивка текста на абзацы

Скрипт писался для ролевого форума. Автоматически разбивает пост на абзацы. В стиле предусмотрен отступ "красной строки", интервал между абзацами и выравнивание текста по ширине.
Скрипт игнорирует участки текста, оформленные вручную с помощью тегов (выравнивание, шрифты, а также [indent]).
Результат работы выглядит примерно так:

https://i.gyazo.com/af3d18f4b81cd04fed59250cdb795914.png

Ставить лучше в html-низ:

Код:
<style>
.post-content {text-align: justify;}
td p {text-indent: 0 !important;}
.post-content p {
  text-indent: 1.5em;
  padding: 0 0 0.5em 0 !important;
}
</style>
<!-- Разбивка текста на абзацы, для  ролевых форумов (c)satsana, 2017г. -->
<script type="text/javascript">
 $(".post-content").html(function() {
  var pos = 0, spanpos = 0, brpos = 0; var str = this.innerHTML;
  while (true) {
    spanpos = str.indexOf("<span", pos);
    brpos = str.substring(pos).search(/(\<br\s?\/?\>)+(?!<span style="display:inline-block)/);
    if (brpos == -1) {return str;} else {brpos += pos;}
    if (spanpos < brpos && spanpos != -1) {
      var span1 = 1, span2 = 0; pos = spanpos + 2;
      while (span1 != span2) {
        pos = str.indexOf("span", pos);
        if (str.substring(pos-1, pos) == "/") {span2++;} else {span1++;}
        pos++;
        if (str.indexOf("<span", pos) == str.indexOf("<br>", pos)) {break;}
      }
    } else if (spanpos > brpos || spanpos == -1) {
      str = str.substring(0, brpos) + str.substring(brpos).replace(/(\<br\s?\/?\>)+/, '</p><p>'); pos = brpos++;
    } else {return str;}
  }
 })
</script> <!-- Разбивка на абзацы (end) -->

В стиле text-indent: 1.5em - величина отступа красной строки, padding: 0 0 0.5em 0 - отступ после абзаца. И то, и другое можно изменить на свой вкус (дробные величины пишутся через точку).

Скрипт отлично сочетается с авто-подстановкой длинных тире, делается она вот так:

Код:
<script>$('.post-content p').html(function(){return this.innerHTML.replace(/(\s|&nbsp;)?-(\s|&nbsp;)/g,'$1&mdash;$2')})</script>

Если на форуме установлен скрипт для ручного отступа с помощью тега [indent], то для избежания появления двойного отступа в начале абзаца можно использовать вот такой код:

Код:
<script>$('.post-content').html(function(){return this.innerHTML.replace(/<p><span style="display:inline-block/g,'<p style="text-indent: 0;"><span style="display:inline-block')})</script>

Отредактировано satsana (Пн, 12 Фев 2018 23:37:06)

+14

475

Разворачивание картинок в постах до полного размера

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

В html-верх или html-низ:

Код:
<!-- Развертывание картинок (с)satsana, 2017г.-->
<script type="text/javascript">
 function postimgOnhover (img) {if (img.offsetWidth != 0  && img.naturalWidth > img.offsetWidth) {
  img.style.cursor = 'zoom-in'; img.onclick = function () {
   var imgHeight = img.naturalHeight, winHeight = window.innerHeight; var topShift = (winHeight>imgHeight ? (winHeight-imgHeight)/2 : 0);
   $('body').append('<div class="lightbox" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.9); overflow: auto; text-align: center; z-index: 1000;">' + '<img class="lightimg" src="' + img.src + '" onclick="this.parentNode.remove()" style="position: relative; top: ' + topShift + 'px; cursor: zoom-out;">' + '</div>');}}}
window.addEventListener("load", function () {
  var postimges = document.getElementsByClassName('postimg');
  for (var i=0; i<postimges.length; i++) {postimges[i].onmouseover = function () {postimgOnhover (this)};}
});
</script><!-- Развертывание картинок (END) -->

Добавлено спустя 2 дня 14 часов 9 минут 33 секунды: Добавлен z-index во избежание появления элементов оформления форума поверх окна просмотра изображений.
Добавлено спустя 5 дней 16 часов 42 минуты: Устранён баг с чтением размеров картинок до их полной загрузки, из-за которого в некоторых браузерах разворачивались все картинки, а не только сжатые.
Добавлено 16.02.2018: Обновила код, теперь можно устанавливать в любое место html-низ или html-верх.

Отредактировано satsana (Пт, 16 Фев 2018 18:11:36)

+9

476

Обновлен скрипт Хэштегов (внесены правки для случаев с несколькими блоками "Код"(идущими не подряд) в посте с хэштегами, Переставляем код на исправленный)

+4

477

Поиск изображений в указанных форумах

В HTML верх:

<!-- Поиск Изображений в указанных форумах -->
<script type="text/javascript">
FORUM.FORUM_arr_ = [
16,59,17]; //ID форумов в которых ищем!;
</script>
<script type="text/javascript" src="http://forumstatic.ru/files/000c/c1/da/32520.js"></script>

В HTML в форме ответа

<a class=search style="display:inline-block;margin:8px;">Поиск изображений</a>


Пояснения:

По клику на ссылку в форме ответа скрипт ищет все картинки в указанных(красным) форумах, размеры которых(вертикальный или горизонтальный) превышает 99px.

+7

478

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

Поставила ваш скрипт ( пока на тестовый форум) ПЕРЕКЛЮЧЕНИЕ РАСКЛАДКИ(Rus/Lat) ВЫДЕЛЕННОГО ТЕКСТА, ибо он просто спасения для забывчивых переключить раскладку. Единственный минус - это то, что он не распознает знаки препинания (точки, запятые и прочее). Можно ли это как-то исправить?

Переключение раскладки (Rus/Lat) выделенного текста

Исходник: скрипт переключения раскладки от Deff.
Убрала вставку/удаление бб-кодов. (Они не совсем корректно работали с запоминалками введённого текста.)  Заменила на определение позиций начала/конца выделенного текста.
Изменила принцип переключения языка, теперь скрипт распознаёт раскладку в выделенной области. При захвате текста с разными раскладками "переводит" участок с латиницей в русскую раскладку. (Если таких участков несколько - переводится только первый из них.)
Добавила смену раскладки для знаков препинания и спецсимволов.
Achtung! Скрипт может не работать в старых версиях IE. Надеюсь, никто уже ими не пользуется...

http://uploads.ru/i/M/a/4/Ma4iZ.png

Код:
<!--Переключение раскладки выделенного текста v.2 -->
<style>#button-transL{background-image:url(http://uploads.ru/i/X/j/Z/XjZW7.png)}</style>
<script type="text/javascript">S='<img src="http://forum.mybb.ru/i/blank.gif" title="Lat ↔ Рус" onclick="LatRus();"/>';
$("#button-font").after('<td id=button-transL>'+S+'</td>');
function LatRus(){
lat0='|@#$^&/?qwertyuiopasdfghjkl;\'zxcvbnm,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~[].'.split('');
lat='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~'.split('');
lat.push('\\[','\\]','\\.','\\?','\\/','\\&','\\^','\\$','\\#','\\@','\\|');
rus0=('йцукенгшщзфывапролджэячсмитьбЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁхъю,.?:;№"/').split('');
rus=('\,йцукенгшщзфывапролджэячсмитьбЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁхъю').split('');
rus.unshift ('\\/','\\"','\\№','\\;','\\:','\\?','\\.');
var selstart = document.getElementById("main-reply").selectionStart;
var selend = document.getElementById("main-reply").selectionEnd;
L=$('#main-reply').val();
if (typeof selstart === "number" && typeof selend === "number"){
var TxtTrans1 = (L.substring(selstart,selend).search(/[qwertyuiopasdfghjklzxcvbnm]/i)!=-1?'rus':'lat');
var ar2=lat0,ar1=rus; if(TxtTrans1=='rus'){ar1=lat;ar2=rus0;
selstart+=L.substring(selstart,selend).search(/[.,]*?[qwertyuiopasdfghjklzxcvbnm]/i); latend=L.substring(selstart,selend).search(/[йцукенгшщзфывапролджэячсмитьёхъю]/i);
if (latend != -1) {selend = selstart+latend;}}
L=L.substring(0,selstart) + L.substring(selstart,selend).replace(/[\s\S]*/mg,function(p){
for(var i=0; i<ar1.length; i++){trans='/'+ar1[i]+'/g';p=p.replace(eval(trans), ar2[i])}return p;}) + L.substring(selend);}$('#main-reply').val(L);}</script>

Отредактировано satsana (Чт, 20 Июл 2017 14:26:26)

+5

479

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

Есть такой скрипт цветового обозначения групп. Возможно ли, чтобы вместо цвета, был применён жирный шрифт?

Вариация скрипта Цветовыделение ников По ГРУППАМ V.3,
позволяющая задавать любое нужное оформление для ников:     

Свое оформление для ников по группам

В HTML низ:

<!-- Свое Оформление для ников по группам -->
<script type="text/javascript">
var groupSTYLE = {

//ID гр.//Стиль для Ников в группе
      1: 'color:red;font-weight:bold;',
      4: 'color:blue;font-style:italic;'  //!последний элемент без запятой

};
</script><script>
(function(){function h(j){var i={};j.replace(/([^:]+)\s*:\s*([^:;]+);?/gim,function(k,m,l){i[m]=l});return i}var b=Object.keys(groupSTYLE).join(",");function a(o){for(var l in o){var j=o[l];var m='("*"):not(.pl-email):not(#navprofile)>a[href$="/profile.php?id='+j.user_id+'"],a[href*=":to(\''+j.username+"')\"]";for(var n in groupSTYLE){var k=h(groupSTYLE[n]);if(j.group_id==n){$(document).find(m).css(k);}}}}function g(){L={method:"users.get",limit:100,group_id:b,fields:"user_id,username,group_id"};$.post("/api.php",L,function(k){var i=k.response.users;a(i);var j=JSON.stringify(i);localStorage.setItem("UsersAdmList",""+RequestTime+"|"+j)},"json")}var f=localStorage.getItem("UsersAdmList");if(f){var d=f.split("|");var e=RequestTime-(parseInt(d[0]));if((1000*e)>24*3600*1000){g();return}var c=d[1];c=JSON.parse(c);a(c)}else{g()}}());
</script>

Стиль вписываем так же, как прописывали бы в атрибуте, к примеру <a style="font-weight:bold;color:#ff0000"></a>

+4

480

Поскольку попросили добавить в скрипт Допуск в Тему или форум определенной группы лиц строго по Списку
скрытие не только непосредственно в форуме или теме, но так же и в поиске тем и сообщений, - сваял такой вариант:

Допуск в тему/форум пользователей по списку с проверкой доступа в поиске

В HTML верх  (не в HTML низ!)

<!-- Допуск в форум/тему по списку -->
<script type="text/javascript">
setAccess('Название форума или темы', [ 'Ник_1', 'Ник_2', 'Ник_3' ]);
setAccess('
Название форума или темы', [ 'Ник_1', 'Ник_2', 'Ник_3' ]);


function setAccess(title, usersList) {
  var u = window.UserLogin || '';
  $().pun_mainReady(function(){
    if ($('#pun-searchposts,#pun-searchtopics').length) $('.post,.main table tbody tr').each(function() {
      var ttl = $(this).find('h3 span').text() || $(this).find('.tc2').text() + $(this).find('.tcl').text();
      if (ttl.indexOf(title) != -1 && usersList.indexOf(u) == -1) $(this).remove()
    });
    if (!($('.crumbs').text().indexOf(title) != -1 && usersList.indexOf(u) == -1)) return;
    var s = 'Информация',s1 =$('#pun-title h1>span').text(); document.title = s1;
    var s2 = 'Вы не имеете прав для доступа к этой странице.';
    var L=' »&nbsp;<a href="/">' + s1 + '</a> »&nbsp;' + s; $('.crumbs').html(L);
    $('#pun-main').html('<h1><span>' + s + '</span></h1><div class=info><div class=container>' + s2 + '</div></div>');
    $().pun_aboutReady(function(){$('#pun-crumbs2>.crumbs').html(L);});
  });
};
</script>

Строки жирным - размножаем для нужных форумов/тем и пользователей(вместо красного пишем свои данные)

+9


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