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

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

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


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


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

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

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>

+4

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)

+11

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)

+7

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.

+6

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

Обновлен скрипт Новое выделение кода в блоке "Код"
Налажена работа копирования выделенного текста в блоке "Код" по нажатию сочетания Ctrl+C. Скрипт должен работать корректно в любых версиях браузеров.

+8

492

Часто спрашивают, как сделать отображение смайлов и другого специфичного 
функционала для формы ответа также и в ЛС и на странице редактирования, - 
Попытался решить эту проблему скриптом, пока от сервиса это не реализовано:

Подгрузка кодов из Формы Ответа на страницу редактирования и ЛС
В HTML верх:

<!-- Подгрузка формы ответа на стр.редактирования и ЛС -->
<script type="text/javascript">
if($('#pun-messages,#pun-edit').length)(function () {
//==================================//
var forum_Load =
126; //Форум с возможностью создания тем всем юзерам
//==================================//
var lnk='/post.php?fid='+forum_Load,form=sessionStorage.getItem('formCNT');
if(!form){form=$.ajax({url:lnk,async:false,cache:false}).responseText;
form=form.split(/><\/textarea><\/span>\s*<\/p>|<p\sclass="checkfield">/)[1];
sessionStorage.setItem('formCNT',form);} $().pun_mainReady(function(){FORUM.dw=document.write;
document.write=function(a){$(a).appendTo('#f-cnt');};form='<div id="f-cnt">'+form+'<div>';
$(form).insertAfter('.areafield');});}());</script><script>
$().pun_mainReady(function(){if(FORUM.dw)document.write=FORUM.dw});</script>

Красным - указываем ID форума, в котором все группы могут создавать темы (см. настройки в Администрирование - Форумы),
ID форума - последние цифры в адресной строке на странице форума, к примеру: http://forum.mybb.ru/viewforum.php?id=16


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

+4

493

собираю в теме разбросанные наработки из заказов скриптов, может кому-то ещё пригодится

Напоминание пользователю не писавшему 30 дней
http://se.uploads.ru/BzvEk.jpg

Код:
<!-- Напоминание пользователю не писавшему 30 дней -->
<style type="text/css">
/* pазмер шрифта, ширина и высота всплывающей таблички */
.jGrowl .pomni {background:#cc3300;padding: 3px;text-align:center;font-size:18px;width: 400px !important;height: 151px !important;}
/* фон таблички (тень шрифта и т.д.) */
.jGrowl .pomni .jGrowl-message {height: 140px !important;background: #e7a61a;border-radius: 6px;-webkit-box-shadow: inset 0px 1px 32px 9px rgba(244,67,54,1);-moz-box-shadow: inset 0px 1px 32px 9px rgba(244,67,54,1);box-shadow: inset 0px 1px 32px 9px rgba(244,67,54,1);text-shadow:0px 5px 7px #060600 !important;padding-top: 12px;
}
.jGrowl .pomni .jGrowl-close {display: none;}
</style>
<script type="text/javascript">
var porog = 30; //порог срабатывания скрипта для пользователя не писавшего N-ое количество дней
if(UserPosts>10&&$('#pun-viewtopic').length){var t=new Date((RequestTime-UserLastPost)*1e3),r=Math.ceil(t/864e5);r>=porog&&$.jGrowl(UserLogin+', что-то Вы ничего не писали уже '+r+' дней',{theme:'pomni',position:'center',life:6e3})}
</script>

Скрипт не срабатывает для тех, кто не писал вовсе или написал не больше 10 сообщений,
за это отвечает эта часть кода:

if(UserPosts>10

Напоминалка закроется сама через 6 секунд, но есть вариант по-жёстче, не закроется пока пользователь сам её не закроет или всё таки не напишет новый пост

Код:
<!-- Напоминание пользователю не писавшему 30 дней -->
<style type="text/css">
/* pазмер шрифта, ширина и высота всплывающей таблички */
.jGrowl .pomni {padding: 3px;text-align:center;font-size:18px;width: 400px !important;height: 151px !important;
} 
/* фон таблички (тень шрифта и т.д.) */
.jGrowl .pomni .jGrowl-message {height: 140px !important;background: #e7a61a;border-radius: 6px;-webkit-box-shadow: inset 0px 1px 32px 9px rgba(244,67,54,1);-moz-box-shadow: inset 0px 1px 32px 9px rgba(244,67,54,1);box-shadow: inset 0px 1px 32px 9px rgba(244,67,54,1);text-shadow:0px 5px 7px #060600 !important;padding-top: 12px;
}
</style>
<script type="text/javascript">
var porog = 30;//порог срабатывания скрипта для пользователя не писавшего N-ое количество дней
if(UserPosts>1&&$('#pun-viewtopic').length){var t=new Date((RequestTime-UserLastPost)*1e3),r=Math.ceil(t/864e5);r>=porog&&$.jGrowl(UserLogin+', что-то вы ничего не писали уже '+r+' дней',{theme:'pomni',position:'center',sticky:!0})}
</script>

+4

494

Рейтинг самых уважаемых с опциями настроек

Код:
<!-- Рейтинг уважения-->
<table id="userhero2" style="width: auto;"></table>
<style type="text/css">
#userhero2 img{border:1px solid #696969;border-radius: 9px;
}
#userhero2 figure {display:block;height: 50px;width: 50px;position: relative;overflow:hidden;text-align: center;
}
#userhero2 figcaption {display:block; width:44px;background:#99CC33;background:rgba(153,204,0,.8);border-radius: 0 0 7px 7px;box-shadow: 0 0 5px #40310A inset;color: #fff; font-size: 0.8em;font-weight: bold;height: 15px;left: 3px;position: absolute;top: 30px;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2 );
}
</style>
<script type="text/javascript">
var limit = 10, // количество выводимых человек на доске почёта
wt = 42, // ширина аватаров
ht = 62, // высота аватаров
figurTop = 30, // высота блока репутации, видимая часть
figurTop2 = 50;      // высота блока репутации, на которую он опускается при наведении курсора
</script>
<script type='text/javascript' src='http://forumfiles.ru/files/0017/d8/50/69985.js'></script>


Устанавливать на отдельной странице или в Объявление

+5

495

Продолжение темы с рейтингами. Как известно можно воспользовавшись скриптом или поиском в списке Участников форума посмотреть условный список/рейтинг самых уважаемых, но нет возможности посмотреть самых позитивных/негативных. Данный скрипт решает эту задачу.

Рейтинг самых позитивных/негативных

http://s5.uploads.ru/Quzys.jpg     http://se.uploads.ru/sRVxi.jpg
ДЕМО

Код:
<!-- Рейтинг самых позитивных/негативных -->
<style type="text/css">
#joper {width: 100%;text-align: center; margin:0 auto;}
.tabz {height: 25px;line-height: 20px;margin: 0 0 3px;list-style: none;
}
.tabz li {float: left;margin-right: 1px; cursor:pointer;background: url("//uploads.ru/i/P/5/Q/P5Q2V.png") no-repeat scroll -366px 0 transparent;background-position-x: -366px;background-position-y: 0px;color: #444444;display: block;margin-bottom: -1px;padding: 0 14px 1px;text-align: center;text-decoration: none;width: 126px;height: 29px;
}
.tabz li:hover {color:#EFEFEF;padding: 0 14px;background: url("//uploads.ru/i/P/5/Q/P5Q2V.png")no-repeat scroll;background-position: -366px -31px; text-decoration:none;
}
.tabz .active {color: #444;padding: 0px 14px 2px;border: medium hidden;line-height: 22px;background-position: -366px -61px;
}
input[type="text"] {background:transparent;border:none !important;padding:0 !important;text-align:center;vertical-align:sub;width:84px;}
input[type="text"]:hover {color: #cbc3f7;
}
.tabz .active input[type="text"]:hover {color: #cbc3f7;}
div[class^="t-"]:not(.t-0) {display: none;}
div[class^="t-"] {background: #fbfbfb;border: 1px solid #888;border-radius: 0 0 9px 9px;padding: 0 5px 5px;counter-reset: span;width: 297px;
} 
#us_min img{border:1px solid #696969;border-radius: 9px;-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);filter: grayscale(100%);transition: all 0.5s ease;
}
#us_min figure {display:block;height: 52px;width: 52px;position: relative;overflow:hidden;text-align: center;
}
#us_min figcaption {display:block; width:50px;background:rgba(255, 46, 0, 0.8);border-radius: 0 0 7px 7px;box-shadow: 0 0 5px #40310A inset;color: #fff; font-weight: bold;font-size: 12px;height: 15px;left: 1px;position: absolute;top: 36px;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2 );
}
#us_min td img:hover {-webkit-filter: grayscale(0%);-moz-filter: grayscale(0%);filter: grayscale(0%);
}
.tipsy-inner {background-color:#004d66; color:white; max-width:200px;
}
#us_min th,#us_poz th {border-radius: 7px;height: 22px;font-size: small;
}
#us_poz img{border:1px solid #696969;border-radius: 9px;
}
#us_poz figure {display:block;height: 52px;width: 52px;position: relative;overflow:hidden;text-align: center;
} 
#us_poz figcaption {display:block; width:50px;background:rgba(245, 124, 0, 0.8);border-radius: 0 0 7px 7px;box-shadow: 0 0 5px #40310A inset;color: #fff; font-size: 0.8em;font-weight: bold;font-size: 12px;height: 15px;left: 1px;position: absolute;top: 36px;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2 );
}
</style>
<div id="joper">
<ul class="tabz">
<li class="t-0 active"> &#x271A; </li>
<li class="t-1"> &minus; </li>
</ul>
<div class="t-0"><table id="us_poz" cellspacing="5" style=""></table></div>
<div class="t-1"><table id="us_min" cellspacing="5" style=""></table></div>
</div>
<script type="text/javascript">
var lim = 25, //количество ячеек (персон) в таблице
ktd = 5; //количество ячеек в строке
</script>
<script type="text/javascript" src="http://forumfiles.ru/files/0017/d8/50/88008.js"></script>

Переключение списков нажатием на вкладки

Устанавливать на отдельной странице или в Объявление
Как видно, часто бывает что, и в списке негативных, и в списке позитивных одни и те же люди, которые просто очень чаще других пользуются системой оценок постов.  :hobo:

+3

496

Календарь событий

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

Календарь событий во ВКонтакте и Facebook
Facebook

http://s9.uploads.ru/fG29I.jpg

во ВКонтакте вы можете посмотреть календарь во вкладке Друзья в верхнем правом углу нажав кнопку http://s8.uploads.ru/Q2D7I.png
http://s9.uploads.ru/rBfSL.jpg

ВКонтакте как выглядит

http://sa.uploads.ru/rFXEB.gif

Сделать полноценный календарь на нашем сервисе не позволяет ограниченность API (увы, нет сортировки по возрасту, чтоб отсеять тех у кого дата рождения вообще не указана) , но тем не менее некое подобие вполне реально, выглядеть это будет так:
http://sa.uploads.ru/t/YljE6.jpg
http://s8.uploads.ru/t/OYFsG.jpg
http://sd.uploads.ru/t/jnW2g.jpg

Я сделал всего 2 опции:
1. список праздников
2. метод по которому выдаётся максимальное количество ваших пользователей, подбирается индивидуально под каждый форум. Если на форуме много активных пользователей, которые часто пользуются системой оценки поста (+ и -), то оптимальным будет метод - respect. Если просто активные пользователи, которые часто пишут, но не пользуются всякими там плюсиками, то оптимален метод - num_posts
Сразу предупреждаю, абсолютно все пользователи указавшие дату своего дня рождения в Календарь не попадут (ограниченность API)! Кстати, как и не попадут, те кто указал не полную дату. Отсутствие года гарантирует вам непопадание в Календарь.
http://s8.uploads.ru/SotUn.jpg

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

td[data-iso="01-01"]

где сначала идёт месяц, потом день
По такому же принципу составляется список праздничных дней, сначала месяц, потом день:

var prazdnik = [{dn: '01-01', celebrate: 'Новый год'},
{dn: '01-07', celebrate: 'Рождество Христово'},
{dn: '01-14', celebrate: 'Старый Новый год'},
{dn: '02-23', celebrate: 'День защитника Отечества'},
{dn: '03-08', celebrate: 'Международный женский день'},
{dn: '04-01', celebrate: 'День смеха (День дурака)'},
{dn: '05-01', celebrate: 'День трудящихся'},
{dn: '05-09', celebrate: 'День Победы'},
{dn: '06-12', celebrate: 'День России'},
{dn: '11-04', celebrate: 'День народного единства'},
{dn: '11-07', celebrate: 'День Октябрьской революции 1917 года'}]

Кстати, во всплывающей подсказке праздничного дня можно сделать изображение стикер. У кого возникнет такое желание, сначала закачайте эти стикеры куда-нибудь, потом пишите мне, сделаем правки в скрипте для вас.
Куда ставить код? Оптимально в описание любого форума: Администрирование -> Форумы -> Редактировать (описание любого форума)

Код:
<style type="text/css">
/* Таблица календаря */
.calendar {
  border: 0px;
  border-collapse: collapse;
  font-family: Arial;
  width: auto !important;
}
/* Заголовок */
.calendar th {
  text-align: center;
  height: 25px;
  background: #ebf0f5 !important;
  color: #8996a3 !important;
  border-bottom: 1px solid #ebf0f5 !important;
}
/* Заголовок праздника */
.calendar th.holiday {
  color: #FF0000 !important;
}
/* Ячейка дня */
.calendar td {
  border-left: 1px solid #ebf0f5 !important;
  border-right: 1px solid #ebf0f5 !important;
  border-bottom: 1px solid #ebf0f5 !important;
  color: rgb(44, 86, 122);
  position: relative;
  white-space: nowrap;
  width: 95px;
  height: 40px;
}
@media screen and (max-width: 640px) {
.calendar td {width: 65px;height:25px;}
#imn {width: 20px;height: 20px;}
.holiday .day_num {width: 12px !important; height: 11px !important;}
.day_num {font-size: 9.5px !important;}
#clndr {width: 16px;height: 16px;}
}
/* Блок с отображающейся датой (день)  */
.day_num {
    position: absolute;
    top: 2px;
    left: 6px;
    text-align: center;
    color: #99acbf;
    font-size: 12.5px;
}
/* Пустой день */
.calendar td.pust {
  background: transparent !important;
  border: none !important;
}
/* Выбранный день */
.calendar td.selected {
  outline: 2px solid #98b0cd;
}
/* Праздничный день */
.calendar td.holiday {
  background: #fafbfc !important;
}
/* Блок с отображающейся датой (праздничный день)  */
.calendar .holiday .day_num {
    cursor: pointer;
    color: #555;
    background: #FFE082;
    border-radius: 50%;
    border-color: #FF9800 !important;
    border: 1px solid;
    width: 18px;
    height: 17px;
}
/* Кнопки навигации */
.calendar td.navigation {
  text-align: center;
  border: 0px none !important;
  font-size: 15px;
  cursor: pointer;
  white-space: nowrap;
}
.calendar td a {bottom: -7px;}
/* Наложение аватаров друг на друга (необходимо при большом количестве именинников в один день)  */
.calendar td a:nth-child(2) {left: -10px;}
.calendar td a:nth-child(3) {left: -20px;}
.calendar td a:nth-child(4) {left: -30px;}
.calendar td a:nth-child(5) {left: -40px;}
.calendar td a:nth-child(6) {left: -50px;}
.calendar td a:nth-child(7) {left: -60px;}
/* Всплывающий блок Календаря  */
 #calendar_table {
 display:none;
    position: fixed;
    top: 10%;
    background: #fff;
    padding: 15px;
    z-index: 9;
    margin: 0 auto !important;
    border-radius: 9px;
	-moz-box-shadow: 0px 0px 40px #444;
  -webkit-box-shadow: 0px 0px 40px #444;
  box-shadow: 0px 0px 40px #444;
}
/* Кнопка иконка календаря */
#clndr {position:relative;float:right;top: -15px;cursor: pointer;}
</style>

<div id="calendar_table"></div>
<!-- Календарь событий-->
<script type="text/javascript">
var prazdnik = [{dn: '01-01', celebrate: 'Новый год'},
{dn: '01-07', celebrate: 'Рождество Христово'},
{dn: '01-14', celebrate: 'Старый Новый год'},
{dn: '02-23', celebrate: 'День защитника Отечества'},
{dn: '03-08', celebrate: 'Международный женский день'},
{dn: '04-01', celebrate: 'День смеха (День дурака)'},
{dn: '05-01', celebrate: 'День трудящихся'},
{dn: '05-09', celebrate: 'День Победы'},
{dn: '06-12', celebrate: 'День России'},
{dn: '11-04', celebrate: 'День народного единства'},
{dn: '11-07', celebrate: 'День Октябрьской революции 1917 года'}],
metod = 'num_posts'; //num_posts или respect
</script>

<script type="text/javascript" src="http://forumfiles.ru/files/0017/d8/50/11373.js"></script>


Можно сделать отображение Календаря не на главной, а на отдельной странице.
Скрипт рекомендуется ставить на активные форумы, где количество зарегистрированных пользователей не меньше 100 ( а лучше от 1000). На малых форумах он мало информативен и будет выдавать ошибку в консоли, хотя она ни на что не влияет.

+5

497

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

Универсальный скрипт замены
"Легкая" версия

В HTML низ:

    <!-- Универсальный скрипт замены © Alex_63 -->
    <script type="text/javascript">
    function Change(sc,ch,st){$(sc).parent().each(function(){$(this).html($(this).html().replace(ch,st));});}

    Change('Селектор','Что меняем','На что меняем');
    </script>

Попытка сменить "0" на "Оценить пост" сработала при замене кода:
Change('Селектор','Что меняем','На что меняем');
на:
Change('div.post-rating a, div.post-vote a','0','Оценить пост');
http://videoreg.forum2.net/viewtopic.ph … p;p=4#p740
Хотелось бы в идеале заменить это всё на одну картинку-кнопку типа "палец вверх".
К примеру, такой: http://forumfiles.ru/files/0018/21/d5/72797.png
И как бы правильно подвинуть элемент оценки по горизонтали и вертикали в посте?

З.Ы. Позже заметил, что сработал код частично. Камрады-гуру, хелп, пли-и-из...)

З.З.Ы. Надеюсь, спросил в нужной ветке: Запросы по скриптам[9]
Просьба к администрации снести этот пост.

Отредактировано Balboa (Сб, 13 Янв 2018 22:03:13)

0

498

Balboa
Это тема не для вопросов, а только для готовых скриптов

+2


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