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

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

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


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


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

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

1

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

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


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


+5

2

к написанию данного скрипта сподвиг пользователь под ником Mango, видел что у Деффа есть слайд-шоу в постах основанное на плагине iLoad,
я тоже воспользовался им, но суть моего скрипта не в том чтобы создавать слайд-шоу в постах, а в том чтобы убрать лишние телодвижения при просмотре фото, которые размещены в сообщение в виде превью, скрипт позволяет открывать фото-превью в этом же окне, не отходя от кассы и разворачивать фото на полную (оригинальную) ширину,
кроме нашего родного uploads.ru,скрипт работает с превью от таких фото-хостингов как радикал и ifotki.info,
если в одном посте целая группа фотографий, то скрипт позволяет их просмотреть в режиме слайд-шоу перелистывая одно за другим
для работы с скриптом на понадобится сам плагин iLoad можно скачать здесь - http://www.download.hr/style/1/images/windows/file_download.png
и закачать его в Администрирование -> Файлы
лично для себя я этот файл немного поднастроил на более быстрое срабатывание
итак:

Просмотр фотографий без перехода на новую страницу

в html-верх грузим наш плагин iLoad

Код:
<script type='text/javascript' src='http://petushki-city.ru/files/0002/10/47/24479.js'></script>

в html-низ скрипт:

Код:
<script type="text/javascript">
$('.post-content').click(function(){ 
var Col = $(this).find('img.postimg').length;
var Cont=$(this).attr('id');
$(this).find('p:has(a) a').each(function(){
var PR = $(this).find('img.postimg').attr('src');
var HR = $(this).attr('href');
if(PR.indexOf("/t/")!= -1) {prev=/(.*?)uploads\.ru\/t\/(.*?)/gim;PR=PR.replace(prev, "$1uploads.ru/i/$2");}
if(PR.indexOf("ifotki.info")!= -1) {prev=/(.*?)ifotki\.info\/thumb\/(.*?)/gim;PR=PR.replace(prev, "$1ifotki.info/org/$2");}
if((HR.indexOf("uploads.ru")!= -1) || (HR.indexOf("ifotki.info")!= -1)){$(this).attr('href',PR);}
if (Col==1) {$(this).attr('rel','iLoad')};
if (Col>=2) {$(this).attr('rel','iLoad|'+Cont)};
});});
</script>

ПРИМЕР работы, просто понажимайте на превью

Отредактировано Romych (Вс, 23 Сен 2012 12:05:05)

+5

3

Простенький слайдер картинок
(больше пока он ничего не делает(но принимаю заявки на доводку

http://s1.uploads.ru/i/iAqSu.png


В HTML верх

<style type="text/css">
#Obr {
   background-clip:border-box;
   border:transparent solid 34px;
   overflow: hidden;
   width:444px;
   height:192px;
   position:relative;
}
div.WRAP {
   background-color:#A883AF;
   display:inline-block;
}
div.WRAP img.picture_mask{
   position:absolute;
   margin-left:-3px;
   z-index:100;

}
#Obr img.slide{
   position:absolute;
   display:none;
}
#Obr img.slide:first-child{
   display:block;
}
</style>

Сам слайдер,
(*ставим туда, где нужен слайдер:

<div class="WRAP">
   <img class='picture_mask' src="http://n.inetech.ru/images/slider.png"/>
<div id="Obr">
   <img class='slide' src="http://s1.uploads.ru/i/t4EZ0.png"/>
   <img class='slide' src="http://s1.uploads.ru/i/udkzn.png"/>
   <img class='slide' src="http://s1.uploads.ru/i/K64eT.png"/>
   <img class='slide' src="http://s1.uploads.ru/i/RNnTx.jpg"/>

</div>

</div>

Ниже слайдера ставим скрипт

Скрипт

Код:
<script type="text/javascript">
$(document).ready(function(){
var slideArr=[]
$("#Obr img.slide").each(function(i){
   slideArr[i]=$(this);
});
var LengSlide = slideArr.length;

var SLTime = 4400;
function Circle(st) {
     var v = st-1;
    if(st==LengSlide)st=0;
    if(st==0)var v=LengSlide-1;i=st;
    slideArr[v].fadeOut(SLTime-400)
    slideArr[i].fadeIn(SLTime, function() {
           setTimeout(function(){$("#Obr img.slide").stop(true,true);
              st++;
              Circle(st);
          },323)
   });
} Circle(1)
});
</script>



Пояснения

Размеры сладера определяются картинкой-"накрывашкой"
(*прозрачка с бордюрами Ссылка
Считать размеры любой картинки - правой кнопкой мыши по картинке и свойства изображения
В нашем коде картинка-"накрывашка" выделена красным =>

<img class='picture_mask' src="http://n.inetech.ru/images/slider.png"/>

Ваши Cлайд-картинки - выделены синим;

Для простановки новых размеров в  стиле слайдера под Вашу картинку-"накрывашку"
Необходимо от реальной ширины и высоты этой картинки отнять двойную ширину бордера,
Определить ширину бордера можно по следующему поясняющему скриншоту:

http://s1.uploads.ru/t/BIvcO.png (*Кликабельно
Т.е бордер чуть уже, дабы картинка заходила внутрь "Экрана"
Далее, - вычисленный бордер проставляем в второй строке указаний для #Obr {

border:transparent solid 34px;

А отняв двойную ширину бордера от реальной ширины и высоты картинки проставляем их в строках

width:444px;
   height:192px;

(*Размеры видимой части картинок будут определяться именно этими параметрами, так что для полного отражения стоит их  делать в этот размер
Итого:

#Obr {
   background-clip:border-box;
   border:transparent solid 34px;
   overflow: hidden;
   width:444px;
   height:192px;
   position:relative;
}

Отредактировано Deff (Вт, 10 Июл 2012 14:52:27)

+1

4

Менюшка
http://s1.uploads.ru/i/MIUwW.png


Код:
</style>
<style type="text/css">
#html-Rik {
  position:relative;
}
#html-Rik tr{
  z-index:-1000;
  vertical-align:center;
}
#html-Rik.Active tr,
#html-Rik:hover #Tr-N00 {
    z-index: 2000;
}

#html-Rik td{
  text-align:center;
  padding:3px;
  visibility:hidden;
}

#html-Rik #Tr-N00 #Td-N00> div{
  border:#33FE01 solid 3px;
  padding:6px;
}
#html-Rik #Tr-N00 td > div{
  border:#4149C4 solid 2px;
}

#html-Rik td > div{
  border:#FF0080 solid 2px;
    padding:5px;
    border-radius:5px;
    -webkit-border-radius:5px;
    -khtml-border-radius:5px;
    -moz-border-radius:5px;
    -o-border-radius:5px;
    -ms-border-radius:5px;
}

#html-Rik.Active td{
  visibility:visible;
}
#html-Rik #Td-N00{
  visibility:visible;
}
#html-Rik:hover #Tr-N00 td{
  visibility:visible;
}

</style>




<table id="html-Rik">
  <tr id=Tr-N00>
   <td id=Td-N00><div>Meню</div></td><td><div>ячейка 2</div></td><td><div>ячейка 3</div></td>
  </tr>
  <tr>
   <td><div>ячейка 4</div></td><td><div>ячейка 5</div></td><td><div>ячейка 6</div></td>
  </tr>
  <tr>
   <td><div>ячейка 7</div></td><td><div>ячейка 8</div></td><td><div>ячейка 9</div></td>
  </tr>
  <tr>
   <td><div>ячейка 10</div></td><td><div>ячейка 11</div></td><td><div>ячейка 12</div></td>
  </tr>
</table>

<script type="text/javascript">
$('#Td-N00').click(function() {
  var a=$('#html-Rik');
  if(a.hasClass('Active')){a.removeClass('Active')
  } else a.addClass('Active')
});
</script>

Ставим Куда нужно

Поправил

Отредактировано Deff (Вс, 5 Авг 2012 01:33:39)

0

5

Создание списка запрещённых к регистрации логинов. rps, mkusher(проходил мимо).
ХТМЛ-верх:

Код:
<style type="text/css">
#pun-register .button {
  display: none;
}

#inform_mess {
  position: absolute; 
  z-index: 1000; 
  padding: 5px;
  width: 400px; 
  margin-left: 200px; 
  margin-top: -22px;
}
</style>

ХТМЛ-низ:

Код:
<script type="text/javascript">
var fld_1 = document.getElementById("fld1"); 

function check_login() {
 var f1_value; var rule; var fld_1;
 var censored_login = new Array("Login_1", "Login_2", "Login_3");
 fld_1 = document.getElementById("fld1");
 f1_value = fld_1.value;
 if (f1_value != "") {
  rule = new RegExp(censored_login.join('|'), "i");
  if (rule.test(f1_value)) create_inform_mess("bad");
  else if (f1_value.length < 2) create_inform_mess("small");
  else create_inform_mess("good");
 }
}

function create_inform_mess(y) {
 var div = document.getElementById('inform_mess');
 var registration = document.getElementById("register").getElementsByTagName("input")[8];
 if (!div) {
  div = document.createElement("div");
  div.id = "inform_mess";
  document.getElementById("fld1").parentNode.appendChild(div);
 }
 if (y == "bad") { 
  div.innerHTML = "Такое имя пользователя недопустимо, выберите другой вариант.";
  div.style.backgroundColor = "#ff6a6a";
  document.getElementById("fld1").style.background = "#ff6a6a none";
  registration.style.display = "none";
 }
 else if (y == "good") {
  div.innerHTML = "Такое имя пользователя разрешено к регистрации.";
  div.style.backgroundColor = "#66cdaa";
  document.getElementById("fld1").style.background = "#66cdaa none";
  registration.style.display = "block";
 }
 else if (y == "small") {
  div.innerHTML = "Имя пользователя не должно быть короче 2 символов.";
  div.style.backgroundColor = "#ff6a6a";
  document.getElementById("fld1").style.background = "#ff6a6a none";
  registration.style.display = "none";
 }
}

if (document.URL.indexOf("register.php") != -1) {
 fld_1.onkeyup = fld_1.onkeydown = fld_1.onfocus = fld_1.onblur = check_login;
}
</script>

Предназначено для тех, кто хочет запретить употребление в никнеймах пользователей отдельные слова или словосочетания. Их нужно прописать в эту строчку:

Код:
 var censored_login = new Array("Login_1", "Login_2", "Login_3");

Различается три варианта: логин содержит запрещённые к регистрации слова, логин разрешён к регистрации и логин слишком короткий (содержит менее 2-ух символов). Цветовая индикация и подсказки помогут ориентироваться. Встроена защита от отключения JavaScript: кнопка "Регистрация" появится только после ввода корректного логина.
Скриншоты:

Свернутый текст

http://s1.uploads.ru/t/haMkD.png
http://s1.uploads.ru/t/yS4nb.png
http://s1.uploads.ru/t/7Fgsq.png

Отредактировано rps (Пн, 6 Авг 2012 15:13:45)

+2

6

Запрет редактировать свой профиль определённой группе пользователей. rps
Аналоги такого скрипта здесь уже были, но решил написать свой вариант.

Код:
<style type="text/css">
#pun-profile input, #pun-changepass input, #pun-upavatar input {
  display: none;
}
</style>
Код:
<script type="text/javascript">
function disabled_profile(g_id) {
 $('input').show();
 if( GroupID == g_id )
 {
  $('input[type=submit]').attr('disabled', true);
  var text = $('.formsubmit').html().replace(/После обновления профиля, вы будете перенаправлены назад на эту страницу./, "<span style='color: red;'>Администратор форума запретил Вам изменять профиль.</span>");
  $('.formsubmit').html(text);
 }
}

if (document.URL.indexOf("profile.php") != -1) disabled_profile("1");
</script>

Первую часть кода ставить в ХТМЛ-верх или без тегов "style" в свой стиль. Вторая часть идёт в ХТМЛ-низ. В ней

if (document.URL.indexOf("profile.php") != -1) disabled_profile("1");

выделенное - номер группы пользователей, которые не смогут менять свои профили.
Достоинства:
1. Не даёт возможности внести изменения при выключенном JavaScript.
2. Совместим со старыми версиями браузеров (не содержит элементов css 3).
3. Выводит уведомление о запрете для пользователя.

Спасибо Duka за ценное замечание при написании.

Скриншоты:

Свернутый текст

Обычный запрет:
http://s1.uploads.ru/t/aBgu6.png

Запрет при выключении в браузере JavaScript:
http://s1.uploads.ru/t/WXnYj.png
Скрыты основные поля и кнопка отправки.

Отредактировано rps (Чт, 9 Авг 2012 18:24:33)

+7

7

Cпойлер cредствами css Cпасибо за помощь Octane

http://s1.uploads.ru/i/UtD4E.png

В HTML верх (единожды) ставим:

Код:
<style>
.spoiler >  input + .box > blockquote{
	display: none;
}
.spoiler >  input:checked + .box > blockquote {
	display: block;
}
.spoiler > input {
	display: none;
}

.spoiler > label{
	width:100px;
        height:17px;
        /*border:red solid 1px;*/
	display:block;
	position:absolute;
	cursor: pointer;
}
.spoiler span.close,
.spoiler span.open{

	padding-left:22px;
	color: #00f!important;
	text-decoration: underline;
}

.spoiler >  input +  .box > span.close {
	display: none;
}
.spoiler >  input:checked +  .box > span.close {
	background: url(http://st0.bbcorp.ru/img/minus.png) 4px 60% no-repeat;
	display: inline;
}
.spoiler >  input:checked  + .box > span.open {
	display: none;
}
.spoiler >  input +  .box >  span.open {
	background: url(http://st0.bbcorp.ru/img/plus.png) 4px  60% no-repeat;
	display: inline;
}

.spoiler blockquote,
.spoiler{
    padding:1em;
    border-radius:15px;
    -webkit-border-radius:15px;
    -khtml-border-radius:15px;
    -moz-border-radius:15px;
    -o-border-radius:15px;
    -ms-border-radius:15px;
}
.spoiler {
    box-shadow: 0px 3px 8px #808080;
    -webkit-box-shadow:0px 3px 8px #808080;
    -khtml-box-shadow:0px 3px 8px #808080;
    -moz-box-shadow:0px 3px 8px #808080;
    -ms-box-shadow:0px 3px 8px #808080;
}

.spoiler blockquote {
   margin-top:12px;
   min-height: 23px;
   border:#CDCDCD 2px dashed;
}
</style>

А это ставим
Куда нужно

<div class="spoiler">

    <label for="trigger1"></label><input  id="trigger1" type="checkbox">
    <div class="box">
        <span class=close>Скрыть</span><span class=open>Показать</span>
        <blockquote class="Untext">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
        </blockquote>
    </div>

</div>

При добавлении нового спойлера, к уже существующим на данной странице - цифру красным меняем на очередную

Отредактировано Deff (Чт, 23 Авг 2012 13:28:35)

0

8

rps, вопрос по скрипту, аналогичный предыдущему (с фото).

Запрет редактировать свой профиль определённой группе пользователей. rps

В HTML-верх:

<style type="text/css">
#pun-profile input, #pun-changepass input, #pun-upavatar input {
  display: none;
}
</style>


В HTML-низ:

<script type="text/javascript">
function disabled_profile(g_id) {
$('input').show();
if( GroupID == g_id )
{
  $('input[type=submit]').attr('disabled', true);
  var text = $('.formsubmit').html().replace(/После обновления профиля, вы будете перенаправлены назад на эту страницу./, "<span style='color: red;'>Администратор форума запретил Вам изменять профиль.</span>");
  $('.formsubmit').html(text);
}
}

if (document.URL.indexOf("profile.php") != -1) disabled_profile("1");
</script>

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

Ваш код, получается, позволяет запетить все изменения в профиле, включая запрет на изменение эл. почты и т. д. Это интересный вариант.

Вопрос такой: если вместо "1" вписать название группы (например "Тролли", или любой другой созданной группы), то код будет работать?

Отредактировано Aleks-Maks (Чт, 23 Авг 2012 11:52:38)

0

9

Aleks-Maks
Если хотите вписывать не через номер группы, а названием, то так:

<script type="text/javascript">
function disabled_profile(g_id) {
$('input').show();
if( GroupTitle == g_id )
{
  $('input[type=submit]').attr('disabled', true);
  var text = $('.formsubmit').html().replace(/После обновления профиля, вы будете перенаправлены назад на эту страницу./, "<span style='color: red;'>Администратор форума запретил Вам изменять профиль.</span>");
  $('.formsubmit').html(text);
}
}

if (document.URL.indexOf("profile.php") != -1) disabled_profile("Модераторы");
</script>

+1

10

Посдсветка Строки и колонки в Таблице:

В HTML верх

<style type="text/css">
#My:hover tr#first td{
     background-color:cyan;
}
.selected-2 {
    background-color:#FCCEFC;
}
.selected {
    background-color:cyan;
}

</style>

Красное меняем на свое - можно добавлять и свои отрибуты выделения - бордеры - цвет букв и т.д
Можно убрать одну из подсветок (селектор .selected или .selected-2
==============
Туда где нужна табличка:

Свернутый текст

(число строк и ячеек в строке можно изменять)

Код:
<table id=My  border="1" cellspacing="2">
    <tbody>
  <tr id=first>
     <td colspan=4>ячейка 1</td>
  </tr>
  <tr>
     <td>ячейка 5</td><td>ячейка 6</td><td>ячейка 7</td><td>ячейка 8</td>
  </tr>
  <tr>
     <td>ячейка 5</td><td>ячейка 6</td><td>ячейка 7</td><td>ячейка 8</td>
  </tr>
  <tr>
     <td>ячейка 5</td><td>ячейка 6</td><td>ячейка 7</td><td>ячейка 8</td>
  </tr>
  <tr>
     <td>ячейка 5</td><td>ячейка 6</td><td>ячейка 7</td><td>ячейка 8</td>
  </tr>
  <tr>
     <td>ячейка 5</td><td>ячейка 6</td><td>ячейка 7</td><td>ячейка 8</td>
  </tr>
  <tr>
     <td>ячейка 5</td><td>ячейка 6</td><td>ячейка 7</td><td>ячейка 8</td>
  </tr>
</tbody></table>


В HTML низ

Свернутый текст
Код:
<script type="text/javascript">

$('#My tr:not("#first")').each (function() {
   $(this).find('td').each (function(i) {
     $(this).addClass('Col-'+i);
   });
});

$("#My  td[class^='Col-']").mouseenter(function() {
   var I=$(this).parent().find('td').index(this);
   $("#My td[class^='Col-"+I+"']").addClass('selected');
   $(this).parent().find('td').addClass('selected-2')
 }).mouseleave(function(){
   var I=$(this).parent().find('td').index(this);
   $("#My td[class^='Col-"+I+"']").removeClass('selected')
   $(this).parent().find('td').removeClass('selected-2')
 });
</script>

Отредактировано Deff (Пт, 24 Авг 2012 20:02:22)

+1

11

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

Нужен скрипт что бы вставлять видео с http://www.myvi.ru/

Maquis
ссылки на ролик прикрутить не получится, привязку можно сделать по коду для Liveinternet, который они выдают к каждому ролику,
типа такого:

Код:
[flash=450,378,http://myvi.ru/ru/flash/player/pre/odznZY9gCJVCpuZ5ZZUrjcX-_41SJhtRop-7FreVAO6xne6gLB-6BESDeAYmptsdH0]

пойдёт вам такой вариант?
http://s1.uploads.ru/t/hdWxv.png

для удобства работы с видео от хостинга myvi.ru, добавлена ссылка на него в общий список поддерживаемых видеохостингов (в самом низу)
http://s1.uploads.ru/i/X9zy8.png

скрипт в html-низ:

Код:
<!--video дополнения-->
<script language="javascript">$('#video-host-list a').tipsy({live:true,gravity:$.fn.tipsy.autoNS,fade:true,html:true});$('div#video-host-list').append(', <a href="#myvi.ru" onclick="tag_video2();changeVisibility(\'video-area\');" original-title="Чтобы вставить видео с сайта myvi.ru</br> нажмите кнопку <b>Стащить</b> возле понравившегося видеоролика</br> и скопируйте  <b>Код для Liveinternet</b>">myvi.ru</a>');function tag_video2()
{var FoundErrors='';var enterURL=prompt("вставьте сюда полученный код","");if(!enterURL)
{FoundErrors+=" "+error_no_url;};if(FoundErrors)
{alert("Ошибка!"+FoundErrors);return;};insert("[video2]"+enterURL+"[/video2]");}
if((document.URL.indexOf("viewtopic.php")!=-1)||(document.URL.indexOf("post.php")!=-1)){var vd=document.querySelectorAll(".post-content p");for(x in vd){var post=vd[x].innerHTML;if(post.indexOf("myvi.ru")!=-1){var vide=/\[video2\]\[flash=(\d+)\,(\d+)\,(.*?)\]\[\/video2\]/gim;post=post.replace(vide,"<embed src='$3' type='application/x-shockwave-flash' allowfullscreen='true' allowScriptAccess='always' width='640' height='390' flashVars='kgzp=replace'>");};vd[x].innerHTML=post;}}</script>

Отредактировано Romych (Вс, 26 Авг 2012 17:02:53)

+2

12

Смайлы с комментариями. rps

Забавная безделушка, начало которой идёт из этой темы: Адаптировать phpBB-шный бб-код для наших форумов. Идея эта впервые реализована на php-bb форумах, я адаптировал её для нашей платформы.
Суть скрипта в том, что он позволяет оставлять мысли в виде текста и наиболее подходящего к нему смайла. Возможно, таким образом будет удобно флудить...

ХТМЛ-верх:

Код:
<script type="text/javascript">
FORUM.set('editor.think', { name : 'Добавить мысли', onclick : function() {make_code(); } } );
</script>
<style type="text/css">
td#button-think {
 background: url(http://st1.bbcorp.ru/i/information.png) no-repeat center !important;
 }

#think-area {
  position: absolute;
  z-index: 1000;
  top: 43px;
  right: 15px;
  padding: 1.5em;
  width: 500px;
}

#div_smiles p {
  padding-bottom: 0 !important;
}

#div_smiles span {
  display: inline;
}

.think_table {
  width: auto !important;
  table-layout: auto !important;
}

td.think_td {
  margin: 0; 
  padding: 0.2em !important;
  border-style: none !important;
}

.think_content {
  background-color: #eeee6f; 
  color: #000; 
  border-radius: 16px; 
  -webkit-border-radius: 16px; 
  -khtml-border-radius: 16px; 
  -moz-border-radius: 16px; 
  -o-border-radius: 16px; 
  border: 1px solid #fff; 
  padding: 3px 5px !important; 
  font-size: 1em;
}

#textarea, #input {
  width: 100%;
}

#close_button {
  margin-left: 15px;
}

.standart_smile {
  padding: 2px;
  cursor: pointer;
}

#hidden_link {
  text-decoration: none;
  border-bottom: 1px dotted;
}

.thought {
  padding-right: 7px;
  background: transparent url(http://s1.uploads.ru/i/D6VpZ.png) no-repeat top right;
  display: inline-block;
}
</style>

ХТМЛ-низ:

Код:
<script type="text/javascript">
var div; var i = 0; var t; var inp; var ta; var max = 10; var def_text = "Мысль потерялась..."; var def_smile = "http://s1.uploads.ru/i/t2jJV.gif";

var pic = new Array();
pic.push("http://www.kolobok.us/smiles/standart/acute.gif");
pic.push("http://www.kolobok.us/smiles/standart/ireful3.gif");
pic.push("http://www.kolobok.us/smiles/standart/blum2.gif");
pic.push("http://www.kolobok.us/smiles/standart/black_eye.gif");
pic.push("http://www.kolobok.us/smiles/standart/bad.gif");
pic.push("http://www.kolobok.us/smiles/standart/secret.gif");
pic.push("http://www.kolobok.us/smiles/standart/yahoo.gif");
pic.push("http://www.kolobok.us/smiles/standart/whistle2.gif");
pic.push("http://www.kolobok.us/smiles/standart/facepalm.gif");
pic.push("http://www.kolobok.us/smiles/standart/this.gif");
pic.push("http://www.kolobok.us/smiles/standart/agree.gif");
pic.push("http://www.kolobok.us/smiles/standart/black_eye.gif");
pic.push("http://www.kolobok.us/smiles/standart/grin.gif");
pic.push("http://www.kolobok.us/smiles/standart/help.gif");
pic.push("http://www.kolobok.us/smiles/standart/polling.gif");
pic.push("http://www.kolobok.us/smiles/standart/smoke.gif");
pic.push("http://www.kolobok.us/smiles/standart/sorry2.gif");
pic.push("http://www.kolobok.us/smiles/standart/umnik.gif");
pic.push("http://www.kolobok.us/smiles/standart/yu.gif");
pic.push("http://www.kolobok.us/smiles/standart/drinks.gif");


function make_div() {
 var fs; var z = 0; var new_div;
 fs = document.getElementsByTagName("div");
 for (z in fs) {
  if (fs[z].className == "fs-box hashelp") {
   new_div = document.createElement("div");
   new_div.id = "think-area";
   new_div.className = "container";
   new_div.style.display = "none";
   fs[z].appendChild(new_div);
  }
 }
}

function make_think(x) {
 var reg; var think; var j = 0; res = x.innerHTML; var smile; var text;
 reg = new RegExp("\\[think=([^\\]]+)\\]([^\\[\\]]+)\\[/think\\]", "g");
 if (reg.test(res)) {
  think = res.match(reg);
  for (j in think) {
   smile = think[j].substring(think[j].indexOf('[think=') + 7, think[j].indexOf(']'));
   text = think[j].substring(think[j].indexOf(']') + 1, think[j].indexOf('[/think]'));
   res = res.replace('[think=' + smile + ']' + text + '[/think]', '<table class="think_table" cellpadding="0" cellspacing="0"><tr><td class="think_td"><div class="think_content">' + text + '</div><span class="thought"><img src="' + smile + '" alt="" /></span></td></tr></table>');
  }
 }
 return res;
}

function make_bb_code() {
 t = document.getElementById("textarea").value;
 if (t == "") t = def_text;
 inp = document.getElementById("input").value;
 if (inp.indexOf("http://") == -1) inp = def_smile;
 bbcode('[think=' + inp + ']' + t + '','[/think]');
 changeVisibility('think-area');
}

function make_code() {
 var h = 0;
 changeVisibility('think-area');
 ta = document.getElementById("think-area");
 ta.innerHTML = "<textarea id='textarea' rows='5'>Введите текст мысли</textarea>";
 ta.innerHTML += "<div id='div_smiles'><p id='conteiner_smiles'><span id='visible_smiles'></span><span id='hidden_smiles' style='display: none;'></span></p><a id='hidden_link' style='cursor: pointer;' title='Показать или скрыть эмоции' onclick='document.getElementById(\"hidden_smiles\").style.display = (document.getElementById(\"hidden_smiles\").style.display == \"none\" ? \"inline\" : \"none\");'>Больше эмоций</a></div><br />";
 ta.innerHTML += "<input type='text' id='input' value='Вставьте ссылку на смайл' /><br /><br />";
 for (h in pic) {
  if (h < max) document.getElementById("visible_smiles").innerHTML += "<img class='standart_smile' src='" + pic[h] + "' alt='Эмоции' title='Нажмите, чтобы добавить' onclick='document.getElementById(\"input\").value = this.src;' />";
  else document.getElementById("hidden_smiles").innerHTML += "<img class='standart_smile' src='" + pic[h] + "' alt='Эмоции' title='Нажмите, чтобы добавить' onclick='document.getElementById(\"input\").value = this.src;' />";
 }
 ta.innerHTML += "<input type='button' class='button' value='Добавить' id='bb_buton' onclick='make_bb_code();' />";
 ta.innerHTML += "<input type='button' class='button' value='Закрыть' id='close_button' onclick='changeVisibility(\"think-area\");' />";
}

make_div();
div = document.getElementById("pun-main").getElementsByTagName("div");
for (i in div) {
 if (div[i].className == "post-content") div[i].innerHTML = make_think(div[i]);
}
</script>

Теперь немного о настройках.
В ХТМЛ-верх располагается скрипт создания новой кнопки в форме ответа и стиль всех элементов. При необходимости, можно поменять иконку

Код:
td#button-think {
 background: url(http://st1.bbcorp.ru/i/information.png) no-repeat center !important;
 }

на свою.
В ХТМЛ-низ доступны для изменения следующие параметры:

Код:
var max = 10;

Устанавливает число смайлов, показываемых по умолчанию в форме. Остальные будут скрыты и доступны по клику на ссылку "Больше эмоций".

Код:
var def_text = "Мысль потерялась...";

Устанавливает стандартную фразу мысли, если пользователь не указал ничего.

Код:
var def_smile = "http://s1.uploads.ru/i/t2jJV.gif";

Устанавливает стандартный смайл-эмоцию, если пользователь не указал его.

Код:
var pic = new Array();

Набор смайлов-эмоций (в стандартном наборе 20 штук). Можно добавлять свои или удалить ненужные.

Спасибо mkusher за советы при разработке.

Скриншоты:

Свернутый текст

http://s1.uploads.ru/t/LNMen.png

http://s1.uploads.ru/t/yxS7Q.png

Отредактировано rps (Чт, 30 Авг 2012 20:47:54)

+9

13

Mango

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

Deff, поясни пожста, не разобрался с *Менюшка*

Вместо надписей ячейка NN вставляешь свой конент

Это могут быть ссылки    <a href="/profile.php?id=22787">Deff</a>,

КАртинки <img src="http://mybb.ru/f/collection/0224.gif" />

И текст риорлдордлрд

Отредактировано Deff (Пт, 31 Авг 2012 09:30:28)

0

14

Sherlock Holmes написал(а):

Как можно поменять слово объявление на другое?

К примеру так:
В начало Объявления

Код:
<script type="text/javascript">
var a = 'Привет';
$('#pun-announcement>h2>span').html(a)
</script>

Привет - свое слово, можно картинку к примеру в таком виде: <img src="http://projekt1.bbmy.ru/uploads/000e/14/cc/39-1.png">

Или вот скрипт в зависимости от времени суток:
В начало Объявления

Код:
<script type="text/javascript">
var h=(new Date()).getHours();
if (h > 23 || h <7) {a='Привет Лунатикам!' }
if (h > 6 && h < 12) {a='Доброе утро!'} 
if (h > 11 && h < 19) {a='Добрый день!'} 
if (h > 18 && h < 24) {a='Добрый вечер!'}
$('#pun-announcement>h2>span').html(a)
</script>

Вместо слова, к примеру Привет Лунатикам!, можно вставить картинку к примеру в таком виде: <img src="http://projekt1.bbmy.ru/uploads/000e/14/cc/39-1.png">

0

15

Комментарии при редактировании сообщения. rps

Код:
<script type="text/javascript">
var mr = document.getElementById("main-reply"); var inp; var i = 0; var edit;
var f;
var reg = new RegExp("\\[edit\\](.[^\\[]+)\\[/edit\\]");

function make_field() {
 var field = document.createElement("input");
 field.id = "field_edit";
 field.type = "text";
 field.size = "80";
 field.style.marginTop = "15px";
 mr.parentNode.appendChild(field);
}

function make_text() {
 var mrv_new; var fv; var mrv;
 fv = f.value;
 mrv = mr.value;
 if (mrv.indexOf("[edit]") == -1) {
  if (fv != "") mr.value += "\n[edit]" + fv + "[/edit]";
  else {}
 } 
 else {
  if (fv != "") mrv_new = mrv.replace(reg, "[edit]" + fv + "[/edit]");
  else mrv_new = mrv.replace(reg, "");
  mr.value = mrv_new;
 }
}

function check(x) {
 if (x.checked == false) f.disabled = false;
 if (x.checked == true) {
  f.disabled = true;
  f.value = "";
  mr.value = mr.value.replace(reg, "");
  f.setAttribute("placeholder", "Укажите причину редактирования");
 }
}

function make_description() {
 var post; var j = 0; var p; var z = 0;
 post = document.getElementById("pun-main").getElementsByTagName("div");
 for (j in post) {
  if (post[j].className == "post-content") {
   p = post[j].getElementsByTagName("p");
   for (z in p) {
    if ((p[z].className == "lastedit") && (reg.test(post[j].innerHTML))) {
     edit = post[j].innerHTML.match(reg)[0];
     edit = edit.substr(edit.indexOf("[edit]") + 6, edit.indexOf("[/edit]") - 6);
     p[z].innerHTML += "<span class='edit_text'>, причина: " + edit + ".</span>";
     post[j].innerHTML = post[j].innerHTML.replace(reg, "");
    }
    else {}
   }
  }
 }
}

if (document.URL.indexOf("edit.php") != -1) {
 make_field();
 f = document.getElementById("field_edit");
 if (reg.test(mr.value)) {
  edit = mr.value.match(reg)[0];
  edit = edit.substr(edit.indexOf("[edit]") + 6, edit.indexOf("[/edit]") - 6);
  f.value = edit;
 }
 else f.setAttribute("placeholder", "Укажите причину редактирования");
 inp = document.getElementById("pun-main").getElementsByTagName("input");
 for (i in inp) {
  if (inp[i].value == "Отправить") inp[i].setAttribute("onclick", "make_text();");
  else if ((inp[i].type == "checkbox") && (inp[i].parentNode.innerHTML.indexOf("Не отображать сообщение о редактировании") != -1)) {
   inp[i].checked = false;
   inp[i].setAttribute("onclick", "check(this);");
  }
 }
}
if (document.URL.indexOf("viewtopic.php") != -1) make_description();
</script>

Ставить в ХТМЛ-низ.

Скриншоты

Обычное состояние:
http://s1.uploads.ru/t/26RLH.png

С комментарием:
http://s1.uploads.ru/t/vqDpC.png

На странице сообщений это выглядит так:
http://s1.uploads.ru/cEjTk.png

Если выбрать пункт "Не отображать сообщение о редактировании", поле окажется неактивным:
http://s1.uploads.ru/lNsWF.png

Обновления и исправления.
13.11.12. Исправлена ошибка с удалением комментария при попытке закрепить первое сообщение темы.

Отредактировано rps (Вт, 13 Ноя 2012 20:41:54)

+4

16

Новый скрипт! Раздражала для не зарегистрированных! От: [forum.wmga.ru]
http://s1.uploads.ru/1sxi9.png

Код:
<div id="MyGuest" style="display:none">
<script>if (GroupID ==3) {$("div.#MyGuest").show()};</script>

<div valign="bottom"><style type="text/css"> 
 a#okno{ 
 position: fixed; 
 bottom: 10px; 
 line-height: 16px; 
 text-align: left; 
 right: 10px; 
 z-index: 30000; 
 opacity: 0.8; 
 width: 290px; 
 height: 80px; 
 background: #000000; 
 color: #fff; 
 text-shadow: rgba(0,0,0,0.3) 0px -1px 0px; 
 padding: 10px; 
 text-decoration: none; 
 font-size: 11px; 
 font-family: Tahoma; 
 border: 1px solid #ffffff; 
 box-shadow: rgba(0,0,0,0.3) 0px 1px 4px, inset #ffffff 0px 1px 0px; 
 border-radius: 3px; 
 } 
 </style> 

<a href="/register.php" id="okno"><strong>Здравствуйте!</strong><br> 
Вы видете это сообщение так как вы не зарегистрировались! 
Разве сложно зарегистрироваться?! Вы за будите об этом окошке.</a></div>
</div>

ДЕМО

Отредактировано Farming (Вс, 21 Окт 2012 12:31:42)

+4

17

Плеер онлайн радио Kiss FM România От: [forum.wmga.ru]
http://s1.uploads.ru/WqOTo.png

Код:
<object data="http://kissfm.ua/kiss_player_new.swf?a=6" type="application/x-shockwave-flash" height="45" width="203">
<param name="flashvars" value="autoplay=true&amp;vol=1">
<param name="movie" value="http://kissfm.ua/kiss_player_new.swf?a=6">
<param name="wmode" value="direct">
</object>

ДЕМО

Отредактировано Farming (Вс, 21 Окт 2012 12:55:05)

0

18

Новый скрипт! Раздражала для не зарегистрированных! №2 От: [forum.wmga.ru]
http://s3.uploads.ru/4DEHw.png

Код:
<div id="MyGuest" style="display:none">
<script>if (GroupID ==3) {$("div.#MyGuest").show()};</script>
<style> 
#okno {position:fixed; bottom:2%; right:2%; padding:-2px; float:left;} 
 #okno {background:#111; border:1px solid #222; font-size:10px; font-weight:bold;color:#fff; width: 260px; padding:2px;margin:0px auto 0px auto;-moz-box-shadow: 0px 0px 4px #888;-webkit-box-shadow: 0px 0px 4px #888;box-shadow: 0px 0px 4px #888; -webkit-border-radius: px;-moz-border-radius: 3px;border-radius: 3px; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"; filter: alpha(opacity=80); -moz-opacity: 0.8; -khtml-opacity: 0.8; opacity: 0.8;} 
 #text{color:#fff; font-weight:bold; font-size: 12px;} 
 </style> 

<div id="okno"> 
 <div id="okno"> 
<table valign="top1"><tbody><tr><td id="text">Преимущества авторизованных</td><td><a onclick="$('#okno').fadeOut();" style="cursor: pointer"><img src="http://binhot.3dn.ru/img/deletend.png" border="0"></a></td></tr></tbody></table> 
Ну, вы обрадуете администрацию<br> 
Комментировать и оценивать сообщения<br> 
<a onclick="$('#malo').slideToggle('slow');" href="javascript://">Если этого мало</a> <a href="http://forum.wmga.ru/register.php">Регистрация</a> <a href="http://forum.wmga.ru/login.php">Войти</a><br> 

<z id="malo" style="display: none;"> 
 Вы сможете скачивать файлы<br>
 Вы сможете писать на форуме<br> 
 Вы сможете учавствовать в опросах<br> 
 Сможете найти новых друзей<br> 
 В дальнейшем общаться с друзьями<br> 
 Поговорить с исскуственным интеллектом<br> 
 Проходить разные тесты<br> 
 В общем, учавствовать в жизни форума<br> 
 </z> 
 </div></div>
</div>

ДЕМО

+2

19

Новый скрипт! Красивые кнопочка с эффектом при наведением! От: [forum.wmga.ru]
http://s3.uploads.ru/CSIJX.png
HTML низ:

Код:
<style type="text/css"> 
#down-wrap,#demo-wrap {position:relative;text-align:left;padding:5px;float:left;margin:10px 10px 10px 10px;width:230px;height:50px;display:block;text-decoration:none;-webkit-border-radius: 50px;-moz-border-radius: 50px;border-radius: 50px;-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);-moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);}
span.btn-title{color:#fff;text-align:center;font:30px/58px Tahoma, Arial, sans-serif;height:50px;width:230px;display:block;position:relative;background: #0095cd;background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));background: -moz-linear-gradient(top, #00adee, #0078a5);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');-webkit-border-radius: 50px;-moz-border-radius: 50px;border-radius: 50px;z-index:5;line-height:50px;-webkit-transition:width .2s ease-out;-moz-transition:width .2s ease-out;-o-transition:width .2s ease-out;}
#down-wrap:hover span.btn-title,#demo-wrap:hover span.btn-title {font-size:19px;width:135px;background: #007ead;background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));background: -moz-linear-gradient(top, #0095cc, #00678e);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');-webkit-box-shadow: 1px 0px 0 #00678E, 0 1px 1px #0095CC;-moz-box-shadow: 1px 0px 0 #00678E, 0 1px 1px #0095CC;box-shadow:1px 0px 0 #00678E,0 1px 1px #0095CC;}
.btn-info {position:absolute;height:50px;width:230px;top:5px;right:4px;-webkit-box-shadow: 0 -1px 0 #00678E, 0 1px 1px #0095CC;-moz-box-shadow: 0 -1px 0 #00678E, 0 1px 1px #0095CC;box-shadow: 0 -1px 0 #00678E, 0 1px 1px #0095CC;background: #0095cd;background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));background: -moz-linear-gradient(top, #0078a5, #00adee);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');-webkit-border-radius: 50px;-moz-border-radius: 50px;border-radius: 50px;z-index:4;}
.btn-info span {width:70px;margin:12px 12px 0 0;position:absolute;right:0;color:#EAF5FF;font:11px/12px Tahoma, Arial, sans-serif;text-align:left;}
#back-top {position: fixed;z-index:100;bottom: 30px;right: 10px;}
</style>

Куда нужно:

Код:
<div style="text-align: center;"><a href="Тест" title="Тест" id="down-wrap"><span class="btn-title">Тестик Тестик</span>
<span class="btn-info"><span>Упс тест Упс тест Упс тест Упс тест</span></span></a></div>

0

20

Хэйтли написал(а):

Всем привет)
Не знала в какой теме написать, эта показалась более подходящей)
Вот у меня была такая идея, сделать на своём форуме в профиле поле ...назвать его типо "Музыка настроения".
То есть каждый участник сможет загружать песенку к себе в профиль на свой вкус, и она будет отображаться под аватар в постах...
Сама так и не сообразила как это сделать, а может это вообще не возможно..
помогите пожалуйста) :flirt:


в общем по просьбе Хэйтли

Любимая мелодия в профиле

инструкция

создаём дополнительное поле в Админке
Название: Любимая мелодия

Поясняющий текст:

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

    пример ссылки на загруженную мелодию -  <a href="http://ato.su/musicbox/i/1012/c3/391f2232603e756103c1b0eb2ba117.mp3">like the morning sunrise</a>


Тип поля: Текстовое поле

Длина: 300

Расположение: Под названием

естественно разрешаем пользователям заполнять это поле

далее в Настройках админки размещаем сам скрипт в html-низ:

Код:
<script language="javascript">
if(window.location.href.indexOf("profile.php?section=fields")!=-1){$('fieldset').map(function(){var Pole=$(this).find('legend:has(span:contains("Любимая мелодия"))');$(Pole).after('<td id="melody" style=\'background-image:url("http://uploads.ru/i/W/Q/P/WQPBO.gif");background-position:center center;background-repeat:no-repeat;cursor: pointer;border:none;\'  title="Загрузить любимую мелодию"></td>');var Vis=$(this).find('p.inputfield input').val();if(Vis=='undefined'||Vis==null){return false;};if(Vis.indexOf(".mp3")!=-1){var plr=/<a href=\"(http:\/\/[^\s<"]+?\.mp3)\">(.*?)<\/a>/gi;Vis=Vis.replace(plr,'<embed src="http://forumfiles.ru/files/000e/8b/b7/80759.swf" type="application/x-shockwave-flash" allowscriptaccess="always" wmode="transparent" flashvars="playerID=audioplayer_2&amp;bg=0xffcc66&amp;slider=0x003366&amp;soundFile=$1&amp;titles=$2" width="200" height="24">');$(this).append(Vis);};});$('#melody').click(function(){$('body').append('<div class="my" align="center" id="melobox" style="width:480px;padding:8px;position:fixed;top:25%;right:35%;z-index:900;"><strong>Загрузить музыку</strong><span style="display:block;cursor:pointer;float:right;margin:0;color:#B22222;font-size:16px;" title="Закрыть" onclick="var zz=document.getElementById(\'melobox\');zz.parentNode.removeChild(zz);"><b>&nbsp;  X</b></span><br><iframe src="http://ato.su/musicbox/" width="478" height="250" frameborder="no" marginheight="3" scrolling="no"></iframe><br>Скопируйте полученный HTML-код ссылки</div>');});};$('td#profile-right li:has(span:contains("Любимая мелодия"))').map(function(){var Ku=$(this).find('strong').html();if(Ku.indexOf(".mp3")!=-1){plr=/&lt;a href=\"(http:\/\/[^\s<"]+?\.mp3)\"&gt;(.*?)&lt;\/a&gt;/gi;Ku=Ku.replace(plr,'<embed src="http://forumfiles.ru/files/000e/8b/b7/80759.swf" type="application/x-shockwave-flash" allowscriptaccess="always" wmode="transparent" flashvars="playerID=audioplayer_2&amp;bg=0xffcc66&amp;slider=0x003366&amp;soundFile=$1&amp;titles=$2" width="200" height="24">');};$(this).find('strong').html(Ku);});$('div.post-author ul').find('li[class^="pa-fld"]:contains("Любимая мелодия")').map(function(){var lm=$(this).html();if(lm=='undefined'||lm==null){return false;};if(lm.indexOf(".mp3")!=-1){lm=lm.replace(/&lt;a href=\"(http:\/\/[^\s<"]+?\.mp3)\"&gt;(.*?)&lt;\/a&gt;/gi,'<br><embed src="http://forumfiles.ru/files/000e/8b/b7/80759.swf" type="application/x-shockwave-flash" allowscriptaccess="always" wmode="transparent" flashvars="playerID=audioplayer_2&amp;bg=0xffcc66&amp;slider=0x003366&amp;soundFile=$1&amp;titles=$2" width="180" height="24">');};$(this).html(lm);});
</script>

важная деталь, скрипт заточен под название дополнительного поля Любимая мелодия, если хочется какое-то своё словосочетание, то надо его вставить по всему скрипту вместо Любимая мелодия

http://s2.uploads.ru/t/rn8co.png http://s3.uploads.ru/t/O4ECb.png http://s2.uploads.ru/t/ePlXA.png

ПРИМЕР

жду реакции от тестирования

Отредактировано Romych (Пн, 5 Ноя 2012 21:57:54)

+6


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