В каталоге запрещено создавать новые темы, т.к. скриптов очень много, а мы стараемся делать хорошую навигацию по разделу и добавлять их упорядоченно. Скрипты, которых еще нет в этом разделе можно выкладывать в этой теме. И модератор добавит их на форум.
Добавление скриптов и css трюков для MYBB
Сообщений 51 страница 60 из 148
Поделиться5121.11.12 15:12
Ротатор нескольких банеров из под кнопки скрытия банеров
автор - Deff
Скрипт берет баннеры из любого div-блока с id="Mybanners" и помещает их автоматически в ротатор по кругу.
Пускай у нас банеры расположены под кнопкой скрытия банеров таким кодом:
<div align=center><a href="#" onclick=" obj=this.parentNode.childNodes[1].style;
tmp=(obj.display!='block') ? 'block' : 'none'; obj.display=tmp; return false;">
<img src="http://xmages.net/storage/10/1/0/4/1/upload/6c2ff770.png" ></a><div id="Mybanners" style="display: none">Тут банеры
</div></div>
Пусть код самих банеров выглядит так:
<a href="Ссылка перехода по клику" target="_blank" ><img src="Ссылка на картинку банера" ></a>
Код может быть более сложным, с добавками alt; title; border; width; и т.д.
Для нормального функционирования последующего скрипта, исключим пока Все банеры со скриптовыми включениями! (типа различные счётчики Rambler-TOP100 и т.д. -их можно поместить в другой спойлер, ниже)
Добавляем в код спойлера идентификатор синим > id="Mybanners" (см выше)
И ставим перед кодом спойлера с банерами (или там где Вы желаете увидеть ротатор) следующий HTML код:
<div style="width:100%"><div id="bns001" style="position:relative;float:right;"><!-- Ротатор Банеров местного разлива --></div></div><!--banner-->
В HTML низ (ниже всех кодов, отображаемых данных скриптом баннеров и места хранилища этих самых баннеров) ставим такой код:
<!-- Ротатор Банеров --><style>
#bns001 { /*Украшалки и позиционирование блока ротации*/
margin:12px -56px -12px 56px!important;
padding: 6px;
border:4px ridge #A3540E;
background-color:#D3BB8C;
z-index:100;
}
#bns001 img{ /* размер и отступы банер-картинки */
padding:0 0px 0 3px!important;
margin:0!important;
height:62px;
width:176px;
}
</style>
<script language="javascript">
arr=new Array()
var nn=2; // Одновременное Кол-во банеров в ротаторе
var sek = 8000; // Время отображения (8 сек.)
var LengMyb=$("#Mybanners a").length;
//alert(LengMyb)
var i=Math.round(Math.random()*(LengMyb-1));
banners(i);function banners(i){
$("#bns001").html(""); //очищаем от предыдущего контента;
for(var y=0;y<nn;y++) {
if( i >= LengMyb-1){i=0};
$($("#Mybanners a")[i]).attr("target","_blank");
$($("#Mybanners a")[i]).clone(true).appendTo("#bns001")
i++;
}
j = i;
//alert("i=j>"+j)
timerID = setTimeout("banners(j)",sek);
}
</script><!--//End Ротатор Банеров -->
Демо - http://hostjs-mybb2011.narod.ru/banners_rotation.htm
[edit]опубликовано[/edit]
Отредактировано Герда (22.11.12 12:07)
Поделиться5221.11.12 15:20
Cлучайная картинка
автор - Deff
Картинка переключается случайным образом и при обновлении страницы и через заданный промежуток времени (если второе не нужно - выставляйте большой промежуток времени: час -два)
Код ставим туда, где надо, чтобы отражалась картинка. Если нужно центрировать, заключаем в теги <center>:
<center>Тут Весь наш код </center>
Сам Код:
<div id="My_IMG"><!-- Случайная Картинка -->
<img height="100" border="1" src="Ссылка на 1-ю картинку"/>
<script type="text/javascript">
var tik = 5000; // Время отображения(в дан.случ. 5сек);
ImgA = new Array ("http://forums.0pk.ru/img/smilies/MyBB/dark/angry.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/blink.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/canthearyou.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/mad.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/mybb.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/music.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/offtop.gif",
"http://forums.0pk.ru/img/smilies/MyBB/dark/writing.gif","End");var i=Math.round(Math.random()*(ImgA.length-1));randomIMG(i);function randomIMG(i){if( i >= ImgA.length-1){i=0};$("#My_IMG img").attr("src",ImgA[i]);var i=Math.round(Math.random()*(ImgA.length-1));j = i;timerID = setTimeout("randomIMG(j)",tik);};</script></div><!-- /End/Случ.Картинк. -->
100 - высота картинки (если нужно фиксировать ширину - меняем в коде height на width)
Красным - любое количество собственных картинок (ставим собственные ссылки)
1 секунда - 1000 тиков
в часе - 3600000 тиков
[edit]опубликовано[/edit]
Отредактировано Герда (22.11.12 12:08)
Поделиться5321.11.12 15:22
Замена пользовательских ссылок на свое слово или картинку
автор - Deff
В HTML низ
<script><!--Своя картинка или Слово в Пользовательские Ссылки -->
var Img_Word=0; //0-Картинка;1-Cлово /Ставим картинку или Слово ?
ulinks=new Array(
".item1","Слово или ссылка на картинку", // Новые сообщения
".item2","Слово или ссылка на картинку", // Активные темы
".item3","Слово или ссылка на картинку", // Темы без ответов
".item4","Слово или ссылка на картинку", // Мои сообщения
".item5","Слово или ссылка на картинку", // Подписка
".item6","Слово или ссылка на картинку" // Все прочитано - !ПОСЛЕДНИЙ элемент без запятой
)
var s,i;for (i=0; i < ulinks.length; i++){s=ulinks[i+1];
if(!Img_Word){s='<img class="ulinks" src="'+s+'" border="0" />'}
$("#pun-ulinks "+ulinks[i]+" a").html("<span>"+s+"</span>");i++;}
</script>
[edit]опубликовано[/edit]
Отредактировано Герда (22.11.12 12:08)
Поделиться5421.11.12 15:27
Цветовыделение слов в дополнительных полях
автор - Deff
В HTML низ
<script type="text/javascript"><!-- Цветовыделение в Доп.полях -->
var s0='<span style="font-weight:bold;',s2='</span>'
var selektor="li.pa-fld1";myarray = new Array(
"#FF0000","Администратор",
"#008000","Модератор",
"#0000FF","Продвинутый","End")
$(selektor).each(function(){
if ($(this).html()!=null){
for(var i=0;i<(myarray.length-1);i+=2){
var s1='color:'+myarray[i]+';" >';
$(this).html($(this).html().replace(myarray[i+1],s0+s1+myarray[i+1]+s2));
};
};
});
</script>
жирное - добавляем или уменьшаем под свои нужды
зеленое - меняем на свои Варианты слов и словосочетаний
красное - цвет выделения
синее - номер поля
[edit]опубликовано[/edit]
Отредактировано Герда (22.11.12 12:08)
Поделиться5521.11.12 15:31
Кнопка Пожаловаться Админу (в ЛС)
автор - Deff
В HTML низ:
<!-- Скрипт Жалоб Администратору Ч1--><script src="http://hostjs-mybb2011.narod.ru/js/Complaint.js"></script><script type="text/javascript"> if(document.URL.indexOf("messages.php?action=new&uid=2")!= -1){ var str=getCookie2(UserLogin+'!Re:'); deleteCookie2(UserLogin+'!Re:'); var str2=getCookie2(UserLogin+'!Re:2'); deleteCookie2(UserLogin+'!Re:2'); if((str!==false)&&(str2!==false)){ //alert("fasfas>>>"+getCookie2(UserLogin+'!Re:')) var e='?!Complaint:Re:'+str2.substring(0,60); $("#profile .longinput[name='req_subject']").val(e);$("#main-reply").val(str);}} </script><!-- Конец Скрипта Жалоб Администратору Ч1(* вторая в форме ответа-->
В HTML форму Ответа
<!-- Скрипт Жалоб Администратору Ч2--><script type="text/javascript">var addComPR='<br /><br /><div class="сomplaint" style="padding:0;margin:-30px 20px 30px -20px;float:right;"><a href="../messages.php?action=new&uid=2" target="_blank" title="Пожаловаться Администратору"><img src="http://savepic.org/1264269.png"/></a></div><br />';$("#pun-viewtopic .post-rating").each(function (){ $(this).before(addComPR);});</script><!-- Конец Скрипта Жалоб Администратору Ч2-->
Добавляя/убирая <br /> - можно отрегулировать отступ от конца сообщения (или подписи)
Уточнение
Для возможности подключения кнопки необходимо чтобы было прописано:
Администрирование - Настройки - Система отношений - Рейтинг поста - Да.
[edit]опубликовано[/edit]
Отредактировано Герда (22.11.12 12:09)
Поделиться5622.11.12 12:17
из прошлых еще не добавлено:
Цветовыделение Ников с изменением цвета при наведении
автор - Deff
<script type="text/javascript"><!-- Цветовыделение Ников с изменением цвета при наведении отличным от стандартного -->
inColor("#31A02E","#FF0000", new Array("Odin", "Казуки", "Киру Лассу", "Китсуне-сама"))
inColor("#7A6F6F","#FF0000", new Array("Тачи Тадао", "Мари", "Дитрих Кернц"))function inColor(color,color2, myarray){
var a=document.links
for(i=0;i<a.length;i++){
for(q=0;q<myarray.length;q++){
if(a[i].innerHTML==myarray[q]){
a[i].innerHTML="<span style=\"color: "+color+";\" onmouseover=\"this.style.color='"+color2+"';\" onMouseOut=\"this.style.color='"+color+"';\"><u>"+myarray[q]+"</u></span>"
}}}}
</script>
<style>
.punbb a span u{text-decoration: none;}
.punbb a span u:hover{text-decoration:underline;}
</style><!-- End // Цветовыделение Ников -->
Зеленым цвет ника в статике, красным - при наведении, синие сами ники с данным цветом
Cтроку синим жирным размножаем для нужных цветов и ников
Поделиться5722.11.12 12:25
Деньги/Баллы/Oчки за посты, активность, приглашения и репутацию
автор - Deff
Баллы/Деньги/Oчки вычислятся по формуле и вставляются в указанное доп-поле под аватаром в топике.
Поле заполняется только Админом и может заполняться не у Всех пользователей, только тем, кому начисляются дополнительные админ-бонусы.
Вычисляются баллы по формуле:
K*(Кол-во постов) + К*(Кол-во часов пребывания на форуме) + K*(Уважение) + K*(Позитив) + АдминБонусы
где К - это коэффициент, прописанный в скрипте. коэффициент может быть для каждого параметра разный.
В HTML низ (значения красным ставим собственные)
<!-- Баллы/Деньги/Oчки -->
<script type="text/javascript">
var NN=1 //Номер Дополнительного поля
var fldName="Баллы" //Точное Имя Поля//Все Коэфициенты могут быть дробными
var K_post=1/5; //Кол-о баллов начисляемых за одно сообщение;
var K_invites=11; //Кол-о баллов начисляемых за число приглашенных на форум;
var K=10; //Коэффициент участия(Кол-о баллов за час пребывания на форуме
var K_respect=3; //Кол-о баллов начисляемых за один балл уважения;
var K_positive=1; //Кол-о баллов начисляемых за один балл выставленный данным юзером другим юзерам в уважение;$("#pun-viewtopic .post .post-author").each(function(){
if($(this).find(".pa-fld"+NN).html()==null){
if($(this).find(".pa-avatar").html()!=null){var L=".pa-avatar"}else L=".pa-title"
$(this).find(L).after('<li class="pa-fld'+NN+'"><b>'+fldName+'</b>: 0</li>')
}
var ss1=$(this).find(".pa-respect span").text();
ss1=K_respect*parseInt(ss1);
var ss2=$(this).find(".pa-positive ").text();
ss2=K_positive*parseInt(ss2.replace("Позитив: ",""));
var ss0=$(this).find(".pa-posts").text();
ss0=K_post*parseInt(ss0.replace("Сообщений: ",""));
var str=$(this).find(".pa-time-visit").text();str=str.replace("Неизвестно","0 минут");
str=str.replace(" минуты","+");str=str.replace(" минуту","+");str=str.replace(" минут","+");
str=str.replace(" часа","*60+");str=str.replace(" часов","*60+");str=str.replace(" час","*60+");
str=str.replace(" день","*24*60+");str=str.replace(" дней","*24*60+");str=str.replace(" дня","*24*60+");
str=str.replace(" месяцев","*(365/12)*24*60+");str=str.replace(" месяца","*(365/12)*24*60+");str=str.replace(" месяц","*(365/12)*24*60+");str=str.replace(/ /g,"");str=str.replace("Провеланафоруме:","");str=str.replace("Провелнафоруме:","");str+="0";var i=eval(str);
var s=$(this).find(".pa-fld"+NN).text();
s=s.replace(fldName+": ","");var s1=s,s2;s=parseFloat(s);s=Math.round((i/60)*K+ss0+ss1+ss2+s);
str=$(this).find(".pa-fld"+NN).html();str=str.replace(s1,s);$(this).find(".pa-fld"+NN).html(str);
;})
</script><!-- Конец -->
Важно! В настройках репутации "Tип oцeнoк" может быть любой, кроме "Плюcы и минycы"
[edit]опубликовано[/edit]
Отредактировано Герда (04.12.12 13:58)
Поделиться5822.11.12 12:36
Сокрытие содержимого в Объявлении от гостей
с заменой на свое сообщение
автор - Кофеман
<script type="text/javascript">
haloguest = ' <div align="center"><font size="4" color="#FF0000">Уважаемый гость!<br></font><strong>После регистрации Вам станут доступны другие функции форума, которые отключены в гостевом режиме.</strong></div> ';
if (GroupID == 3)
conthide.style.display = "none";
if (GroupID == 3)
document.write(haloguest)
</script>
Ставить в сам низ Объявления.
При этом, если у Вас в Объявлении таблица, то достаточно в ней прописать id="conthide" больше ничего не меняя.
Строка выделенная красным - это сообщение, которое Вы можете вывести для Гостей вместо содержимого, которое прячется. Поддерживаются HTML теги форматирования текста.
Важно: В выделенной строке не должно быть перевода строк. Т.е. строка должна быть без "энтеров" где-то внутри.
Вариант сокрытия объявления от Deff
<div id="FromUser" style="display:none;"> Тут объявление только для Юзеров</div>
<div id="Fromguestr" style="display:block;"> Тут объявление только для Гостей</div><script type="text/javascript">
if (GroupID != 3) {
document.getElementById('FromUser').style.display = "block";
document.getElementById('Fromguestr').style.display = "none";
}
</script>
[edit]опубликовано[/edit]
Отредактировано Герда (04.12.12 13:57)
Поделиться5922.11.12 13:09
Своё описание к каждой теме, отображаемое в соответствующем форуме
с Редактированием и Предпросмотром
Ставим в HTML низ
<!-- Добавляем своё Описание темы в форуме --> <style type="text/css"> .yaxiko { color: #FF0000; /* Цвет текста */ margin-top: 2px; /* Частично отступ сверху */ margin-left: 68px; /* Отступ слева */ width:134px; /*Ширина поля для Описания */ font-size: 87%; /* Размер Шрифта (можно в пикселах */ display:block; } #pun-crumbs1 .yaxiko, #pun-crumbs2 .yaxiko, #pun-index .yaxiko, div.post-links .yaxiko, #pun-main h1 .yaxiko{ display:none; } </style> <script type="text/javascript"> var opisymb='‡'; $("#pun a:contains('‡')").each(function (){ var ss = $(this).html(); ss=ss.replace('‡','<p class="yaxiko">')+'</p>';$(this).html(ss); if ((document.URL.indexOf("viewtopic.php") == -1) && (document.URL.indexOf("post.php") == -1) && (document.URL.indexOf("edit.php") == -1)){$(this).find(".yaxiko").appendTo($(this).parents("td:first"))};}); $("#pun-viewtopic #pun-crumbs1 .crumbs:contains('‡'),#pun-main h1 span:contains('‡'),#pun-viewtopic #pun-crumbs2 .crumbs:contains('‡')").each(function (){ var ss = $(this).html();var n=ss.indexOf('‡');ss=ss.substring(0,n);$(this).html(ss);}); if (((document.URL.indexOf("edit.php?id")!=-1)||(document.URL.indexOf("post.php?fid")!=-1))&&($("input[name='req_subject']").html()!==null)&&($("#fld4").html()==null)) { var str2=""; $("span.input:first").after('<br/><span>Тут можно ввести своё Описание Темы:<br/><input id="fld4" type="text" name="tryam" value="'+str2+'" size="80" maxlength="70" /></span>'); $("input[name='submit']").css({'display':'none'}); $("input[name='preview']").css({'display':'none'}); var str=$("input[name='req_subject']").val(),Dleng=str.length; var L=str.indexOf('‡'); if(L!=-1){ str0=str.substring(0,L-1); var str2=str.substring(L+1,Dleng); $("input[name='req_subject']").val(str0); $("input[name='req_subject']").remove().appendTo(".input:first"); $("#fld4").val(str2); } if ($("#pustoj").html()==null){$("input[value='Отправить']").after('<input type="button" id="pustoj" class="button" name="pustoj" value="Отправить" />');} if ($("#pustoj2").html()==null){$("input[value='Посмотреть']").after('<input type="button" id="pustoj2" name="pustoj2" value="Посмотреть"/>');} $("input[name='pustoj2']").click(function (){ if($("#main-reply").val()==''){alert('"Сообщение" это поле обязательно для заполнения в этой форме.');return}; $("input[name='req_subject']").css({'color':''+$("input[name='req_subject']").css("background-color")+''}) var str=$("input[name='req_subject']").val(),str1; str1=$("#fld4").val(); if (str!=""&&str1!=""){ str+=" "+opisymb+str1;$("input[name='req_subject']").val(str);$("#fld4").remove();}; $("input[name='preview']").click();}); $("input[name='pustoj']").click(function (){ if($("#main-reply").val()==''){alert('"Сообщение" это поле обязательно для заполнения в этой форме.');return}; $("input[name='req_subject']").css({'color':''+$("input[name='req_subject']").css("background-color")+''}) var str=$("input[name='req_subject']").val(),str1; str1=$("#fld4").val(); if (str!=""&&str1!=""){ str+=" "+opisymb+str1;$("input[name='req_subject']").val(str);$("#fld4").remove();}; $("input[name='submit']").click();}); } </script><!-- Конец/Описание темы в форуме -->
Для темы, создаваемой под опрос, своё Описание к теме можно прописать на этапе редактирования первого сообщения
Для правильного отображения темы в скриптах "10-15-20 Последних сообщений", ставьте данный скрипт ниже скрипта Последних сообщений или дополнительной статистики.
[edit]опубликовано[/edit]
Отредактировано Герда (04.12.12 13:57)