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

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

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


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


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

Сообщений 481 страница 491 из 491

1

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

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


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


+5

481

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.2016 для случаев с несколькими блоками "Код" в посте


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

+8

482

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

Расширенная функция переноса сообщений  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="http://forumfiles.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

483

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>

+3

484

Автоматическая разбивка текста на абзацы
Скрипт писался для ролевого форума. Автоматически разбивает пост на абзацы. В стиле предусмотрен отступ "красной строки", интервал между абзацами и выравнивание текста по ширине.
Скрипт игнорирует участки текста, оформленные вручную с помощью тегов (выравнивание, шрифты, а также [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>
<!-- Разбивка на абзацы -->
<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 (Вс, 18 Июн 2017 23:55:24)

+9

485

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

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

В html-низ:

Код:
<!-- Развертывание картинок -->
<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>');}}}
  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 минуты: Устранён баг с чтением размеров картинок до их полной загрузки, из-за которого в некоторых браузерах разворачивались все картинки, а не только сжатые.

Отредактировано satsana (Ср, 28 Июн 2017 19:20:59)

+5

486

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

+4

487

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

В HTML верх:

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


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

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


Пояснения:

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

+5

488

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

489

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

490

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

Допуск в тему/форум пользователей по списку с проверкой доступа в поиске
В 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

491

Перенес обсуждение в Запросы по скриптам[9]

+1


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