Форум Техподдержки Nowbb.Ru

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

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


Вы здесь » Форум Техподдержки Nowbb.Ru » Скрипты и дополнения » Новые возможности. Скрипты.


Новые возможности. Скрипты.

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

1

Что делает?
- Этот скрипт для гостей отображает только имя пользователя, аватар пользователя и репутацию пользователя

<script type='text/javascript'>
if (document<script type='text/javascript'>
if (document.getElementById('pun-status').innerHTML.indexOf("Гость")!=-1)
{
document.write("<style>")
document.write(".pa-online {display:none}")
document.write(".pa-reg {display:none}")
document.write(".pa-posts {display:none}")
document.write(".pa-fld1 {display:none}")
document.write(".pa-fld2 {display:none}")
document.write(".pa-fld3 {display:none}")
document.write(".pa-icq {display:none}")
document.write(".pa-age {display:none}")
document.write(".pa-sex {display:none}")
document.write(".pa-time-visit {display:none}")
document.write(".pa-from {display:none}")
document.write(".pa-title {display:none}")
document.write("</style>")
}
</script>

можно убрать всё, кроме репутации и аватара

2

Разделение важных и обычных тем на блоки

<script type="text/javascript">
if (document.URL.indexOf("viewforum")!=-1)
{var trs=document.getElementById('pun-main').getElementsByTagName("table")[0].rows
var io=1
for (io=1; io<=(trs.length-1); io++)
{if ((trs[io].className.indexOf("isticky")!=-1)&&(io==1))
{var portant=document.getElementById('pun-main').getElementsByTagName("table")[0].insertRow(1)
var im=portant.insertCell(0)
im.innerHTML="Важные темы"
im.style.color="#0000FF"
im.style.backgroundColor="#FFFFFF"
im.colSpan="4"}
else if ((trs[io].className.indexOf("isticky")!=-1)&&(trs[io+1].className.indexOf('isticky')==-1))
{var normal=document.getElementById('pun-main').getElementsByTagName("table")[0].insertRow(io+1)
var normal1=normal.insertCell(0)
normal1.innerHTML="Темы форума"
normal1.style.color="#0000FF"
normal1.style.backgroundColor="#FFFFFF"
normal1.colSpan="4"
}}}
</script>

im.style.backgroundColor="#FFFFFF"
normal1.style.backgroundColor="#FFFFFF" цвет фона строк ВАжные темы и Темы форума
normal1.style.color="#0000FF"
im.style.color="#0000FF"  цвет шрифта в этих строках.

3

Массовое удаление пользователей, не имеющих  сообщений
Кому и для чего это нужно? Исключительно ленивым, тем у кого слишком много ненужны пльзователей  выискивать и удалять их вручную слишком долго и муторно.
Для его это НЕ нужно?Для экономии траффикак. Ибо все страницы на которых вам пришлось бы побывать вручную открываться БУДУТ. Только это будет очень быстро и без вашей помощи.
В html низ вставляем

<script type="text/javascript">
var myforum="durak.nowbb.ru"
var myforum1="http://"+myforum+"/profile.php?id=2"
if (document.getElementById('navpropfile').getElementsByTagName("a")[0].href!=myforum1)
{document.getElementById('massdeleter').style.display="none"}
document.getElementsByTagName("body")[0].onkeydown=stopAll
function stopAll()
{document.cookie="zebra=nefiga"}
if (document.cookie.indexOf("zebra=neutral")!=-1)
{ if (document.URL.indexOf("userlist.php")==-1)
{user()}
}}
var myforum2="http://"+myforum+"/userlist.php?show_group=-1&sort_by=num_posts&sort_dir=ASC"
function user()
{var windower=window.open(myforum2, "_self")
var users=document.getElementById('pun-main').getElementsByTagName("table")[0].rows
if ((users[1].getElementsByTagName("td")[3].innerHTML)*1==0)
{var locat="http://"+myforum+"/profile.php?section=admin&"+users[1].getElementsByTagName("a")[0].href.substr(users[1].getElementsByTagName("a")[0].href.indexOf("id="))+"&action=foo"
document.cookie="zebra=delete"
var windower=window.open(locat, "_self")}
else
{document.cookie="zebra=nefiga"}}

if ((document.cookie.indexOf("zebra=delete")!=-1)&&(document.URL.indexOf("action=foo")!=-1))
{if (!document.getElementsByName("delete_user_comply")[0])
{document.getElementsByName("delete_user")[0].click()}
else
{document.getElementById('fld1').click()
document.getElementsByName("delete_user_comply")[0].click()
document.cookie="zebra=neutral"
}
}
</script>
<input type="button" value="Удалить лишних" onclick="user()" id="massdeleter" />

Вместо durak.nowbb.ru - ваш адрес форума
document.getElementById('fld1').click() эту строчку оставляем, если хотим чтобы сообщения удаляемых пользоватеолей остались. Если их надо тооже удалить - убираем.
Кнопка Удалить лишних видна толкьо главному администратору. Принажатии на нее начнут мелькать окна. Скорость мелькания зависит от скорости вашего интернета, но по-любому быстро.
Опасен ли скрипт, и чем это все грозит?
По больщому счету скрипт абсолютно безопасен, если
1. если вы за каким-то фигом не пойдете подделывать свои куки (и если вообще умеете это делать)
2.Удалять пользователей в независимости от скрипта может только Администратор. Поэжтому пока ваш аккакунт не взломалиь вам ничего не грозит. А если взломают, то их удалят и так.
Что делать если...
Я разнервничался, я вообще-то поторопился и никого удалять не хочу, А чего это так многт мелькает, Я вообще жалею , что это затеял,у меня внезапная паника и т.д.
Для особо нервных предусмотрена тревожная кнопка.
Если удаление уже началось, но вы вдруг хотите его прервать,

нажмите на любую букву на клавиатуре.

Это прервет мелькание и удаление.

4

Подпись по умолчанию тем, у кого ее нет

<script type="text/javascript">
if (document.URL.indexOf("viewtopic")!=-1)
{var sigs=document.getElementById('pun-main').getElementsByTagName("div")
var v=0
for (v=0; v<=(sigs.length-1); v++)
{if (sigs[v].className=="post-content")
{if (sigs[v].innerHTML.toLowerCase().indexOf("<span>подпись автора</span>")==-1)
{sigs[v].innerHTML=sigs[v].innerHTML+"<dl class='post-sig'><dt><span>Подпись автора</span></dt><dd><p>"+"Ваш текст по умолчанию"+"</p></dd></dl>"}}}}
</script>

5

Замена "мужской/женский" (пол) на картинки

<script type="text/javascript">
var sex=document.getElementById('pun-main').getElementsByTagName("li")
var sx=0
for (sx=0; sx<=(sex.length-1); sx++)
{if (sex[sx].className=="pa-sex")
{if (sex[sx].innerHTML.indexOf("Мужской")!=-1)
{sex[sx].innerHTML="Пол: "+"<img src='мужская картинка' />"}
else if (sex[sx].innerHTML.indexOf("Женский")!=-1)
{sex[sx].innerHTML="Пол: "+"<img src='женская картинка' />"}
}}
</script>

6

Сделать все ссылки в сообщениях невидимыми для гостей

<script type="text/javascript">
if (!document.getElementById('navprofile'))
{
var posti=document.getElementById("pun-main").getElementsByTagName("div")
var oj=0
for (oj=0; oj<=(posti.length-1); oj++)
{if (posti[oj].className=="post-content")
{posti[oj].innerHTML=posti[oj].innerHTML.toLowerCase().replace(/<a href/g, "<font color='red'>Зарегься чтобы увидеть ссылки</font><a style='display: none;' href")}}
}
</script>

7

Скрипт скрытия фотографий от гостей:

<script language="JavaScript">
if( !document.getElementById("navprofile") )
{
    document.write("<style>")
    document.write(".post-content IMG{display:none !important}")
    document.write("</style>")
}
</script>

8

Смена слова Позитив на свое

<script type="text/javascript">
function changeLink()
{var arr=document.links
for (j in arr)
{
if (arr[j].innerHTML=="Позитив")
{arr[j].innerHTML="Ваше слово"}
}}
changeLink()
</script>

9

Изменение уважение на свое слово

<script type="text/javascript">
function changeLink()
{var arr=document.links
for (j in arr)
{
if (arr[j].innerHTML=="Уважение")
{arr[j].innerHTML="Ваше слово"}
}}
changeLink()
</script>

10

Связь с Администрацией через ICQ. (С) Duka
Скрипт позволяет выводить в любом месте ссылку со статусом В сети/Не в сети  номера администратора и при клике открывается форма отправки сообщения, после которого в эту же секунду администратор полчаует сообщение на свой номер. В клиенте icq отключите опцию "Не принимать сообщения, содержащие web-ссылки" т.к. сообщение приходит вместе с e-mail'ом отправителя.

<script language="JavaScript">
function poppict()
{
var msg = new String("")
msg = ""

popup = window.open("http://www.icq.com/people/webmsg.php?to=НОМЕР","popDialog","height=550,width=500")
popup.document.write(msg)
popup.document.close()

return false
}
</script>
<a id="poppict" onclick="return poppict()"><img src=http://status.icq.com/online.gif?icq=НОМЕР&img=5 border=0 width=18 height=18>Написать администратору</a>

В данном скрипте 2 раза в строках 7 и 14 ищите слово НОМЕР и ставите свой номер аси.
Вставлять в то место, куда душе угодно.
Скрипт обновлен.

11

Сокрытие информации под аватаром с помощью кнопки.

<script>
function HideInfo(id,but){
if(but.value=="+"){
  but.value = "-";document.getElementById(id).style.display = ""}
else{
  but.value = "+";document.getElementById(id).style.display = "none"}
  return false}

d = document.getElementsByTagName("div")

for (i=0;d[i]; i++){
if (d[i].className.indexOf("post-author")!=-1){t = d[i].innerHTML
   if((j = t.toLowerCase().indexOf("<li class=pa-from>"))!=-1 || (j = t.toLowerCase().indexOf("<li class=\"pa-from\">"))!=-1 || (j = t.toLowerCase().indexOf("<li class=pa-reg>"))!=-1 || (j = t.toLowerCase().indexOf("<li class=\"pa-reg\">"))!=-1)
    d[i].innerHTML = t.substring(0,j)+"<input type='Submit' onClick=\"return HideInfo('info"+i+"',this)\" value='+'><br><div id='info"+i+"' style='display:none'>"+t.substring(j,t.length)+"</div>"}}
</script>

12

Загрузка изображения с помощью Imageshack.us
Уже давно наболел вопрос по поводу загрузки изобраения на форум... Этот скрипт позволит на время забыть Вам эту проблему.

<table><tr>
      <td align="right" valign='top' width='20%'>
     <b>Загрузить картинку на ImageShack.us
Загрузка будет производиться в новом окне</b>
      </td>
      <td align="left" width='80%'>
     <iframe src="http://www.imageshack.us/iframe.php?txtcolor=111111" frameborder="0" height="70" scrolling="no" width="280">
</iframe>
     </td>
  </tr>
</table>

Вставлять в HTML в форме ответа.

13

Загрузка файлов Простой вариант

<script language="JavaScript">
    function poppict()
    {
    var msg = new String("")
    msg = ""
    popup = window.open("http://filestock.ru/","popDialog","height=400,width=600")
    popup.document.write(msg)
    popup.document.close()
    return false
    }
    </script>
    <a id="poppict" onclick="return poppict()">Загрузка файлов</a>

14

Информационное табло. Альфа-версия Duka

<script type="text/javascript">
var doska="Скрипт позволяет вывести дополнительное поле с объявлением. При необходимости выложу его на официальном форуме технической поддержке пользователей MyBB.ru"
var arr=document.getElementsByTagName("div")
i=0
str=document.URL
while(arr[i] ){
if((str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php") && arr[i].className=="main"){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML="<div class=container><b> <br><font size=2>Информационное табло:</font></b><br><br>"+doska+"</div><br>"+name+""
}
i++
}
</script>

Все что подчеркнуто можете менять на свое. Не делаем лишних переносом непосредственно кнопкой enter, используем чистый html без ковычек! Табло будет отображаться только на главной страничке

15

Информационное табло на форум. Бета-версия (c) Duka

<script type="text/javascript">
var news="Новость"
var news1="Нет новости1"
var link1=""
var news2="Нет новости2"
var link2=""
var news3="Нет новости3"
var link3=""
var news4="Нет новости4"
var link4=""
var tablo="<div id=\"pun-category1\" class=\"category\"><h2><div class=\"catleft\"><!-- --></div><span>Информационное табло</span><div class=\"catright\"><!-- --></div></h2><div class=\"container\"><table cellspacing=\"0\"><thead><tr><th scope=\"col\">Новости</th><th scope=\"col\">Статистика сообщений</th><th scope=\"col\">Статистика пользователей</th><th scope=\"col\">4 Новости дня</th></tr></thead><tbody class=\"hasicon\"><td>"+news+"</td><td class=\"tc2\">Не хотите ли просмотреть<br/><a href='/search.php?action=show_24h'>Активные темы</a><br/>или <br/><a href='/search.php?action=show_new'>Новые сообщения</a><br/>с момента вашего последнего визита?<br/></td><td class=\"tc3\"><a title=\"Самые активные пользователи форума\" href=\"statistic.php?action=active_users\">Самые активные</a><br><Br><a title=\"Самые активные пользователи сегодня\" href=\"statistic.php?action=active_users_today\">Активные сегодня</a><br><br><a title=\"Администрация форума\" href=\"statistic.php?action=administration\">Администрация</a><br><br><a title=\"Посмотреть полную статистику\" href=\"statistic.php\">Полная статистика</a></td><td class=\"tcr\"><a href="+link1+">"+news1+"</a><br><a href="+link2+">"+news2+"</a><br><a href="+link3+">"+news3+"</a><br><a href="+link4+">"+news4+"</a></td></tr></tbody></table></div></div>"
var arr=document.getElementsByTagName("div")
i=0
str=document.URL
while(arr[i] ){
if((str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php") && arr[i].className=="main"){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML=""+tablo+"<br>"+name+""
}
i++
}
</script>

Этот скрипт сделает на вашем форуме Новое усовершенствованое табло, которое будет дополнением к таблице.
Скрипт будет отображаться только на главной странице
Внимательно работайте с ней, никакой защиты от дураков я в нее не поставил, Любая ковычка может сломать скрипт и он работать Не будет!
Желательно ставить в самый верх html-низ.
Как настроить скрипт?
var news="Нет новостей"
Вместо Нет новостей Пишим любой текст, можно и хтмл, но НИКАКИХ КОВЫЧЕК! Заменяйте свои ковычки на ' (апостроф) или же ставьте перед каждой ковычки \ , дабы экранировать их.
Эта часть скрипта будет самой левой частью колонки.
var news1="Нет новости1"
var link1=""
var news2="Нет новости2"
var link2=""
var news3="Нет новости3"
var link3=""
var news4="Нет новости4"
var link4=""
За что отвечают эти строчки?
Эти строки выводят ссылки в самой правой части колонки. Вместо Нет новости1, а также 2,3,4 вводите Заголовки ссылки, а в  var link1="" в сами ковычки добавляете ссылку на тему(или страницу)
т.е. долюно получится примерно так:
var news1="Скрипты от пользователей"
var link1="https://forums.nowbb.ru/viewtopic.php?id=6902"
Так же и с остальными ссылками.
Т.е. в скрипте я заранее прописал шаблон примерно такого вида <a href=ссылка>Заголовок</a>, чтобы вы ничего не начудили так, а сразу подставили в поля свои данные.
Это единственное, что можно поменять на свое, не опасаясь за скрипт. Если вы владеете уверенными знаниями в HTML,а также знанием html-структуры форума, то можете смело осторожно глянуть на строчку var tablo= и поменять пару фраз. Что находится во втором столбце? Там находятся 2 ссылки на Новые сообщения, и Активные темы. Что в третем столбце? Там находятся ссылки на функции, которые администратор отключил. Некоторое время они окажутся ненужными, но когда Admin включит полную статистику, то тогда и эти ссылки окажутся нам полезными.
Табло адаптируется под каждый форум автоматически, т.е. срабатывает под каждый стиль. Ненадо беспокоиться о внешних качествах, ведь табло примет все стили форума на себя и станет ее частью)
Есть небольшие деффекты, которые мне исправить не под силу: я просто унаследовал всю таблицу у категории с форумом, поэтому если стиль хочет, чтобы в 3 столбце надписи были курсивом, то и в таблице третий слобик будет курсивом.
Пользуемся, но помним: Никаких ковычек(либо экранируйте их)
Добавлено:
Обновил скрипт, не работал, сейчас все отлично!

16

Видео в посты с Видеообменников.
YouTube

http://i022.radikal.ru/0803/4e/98aca6d5ebfbt.jpg
Скрипт представляет из себя в действии обычный тег [youtube]видео[/youtube], которое вы размещаете в посте и окно с видео появится в самом посте.

<script>
function addSpoiler(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[youtube]",from))==-1) return str;
if((pos2=str.indexOf("[/youtube]"),pos+9)==-1) return str;
newpos=str.indexOf("[youtube]",pos+9)
if(newpos<pos2 && newpos!=-1) str=addSpoiler(str,pos+9,true)
if((pos2=str.indexOf("[/youtube]",pos+9))==-1) return str;
str=str.substring(0,pos)+makeSpoiler(str.substring(pos+9,pos2))+str.substring(pos2+10,str.length)
if( str.indexOf("[youtube]")!=-1 && internal==false) str=addSpoiler(str,0,false)
return str}

function makeSpoiler(txt){
txt="<br><embed src=\"http://www.youtube.com/v/"+txt+"\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"425\" height=\"350\"></embed><br>"
return txt}

if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addSpoiler(post.innerHTML,0,false)}}
</script>

Скрипт вставлять в хтмл-низ.
Как добавлять видео?
заходите на youtube.com, находите в поиске нужно вам видео, жмете на просмотр и в адресной строке будет что-то типа http://youtube.com/watch?v=5pvXkmlaiBk, так вот  окончание после знака равно нам и потребуется 5pvXkmlaiBk
Далее идет в тему, пишим пост и вставляем туда такой тег
[youtube]5pvXkmlaiBk[/youtube]
Далее жмем отправить и наслаждаемся просмотром видео в посте.
Эта бета-версия, если вдруг кому-то потребуются изменения в структуре, обращайтесь только в эту тему. Все ваши вопросы тоже сюда.
Так как хтмл в сообщении отключили из-за безопасности, то данный скрипт вы ставите на свой страх и риск.
Ru.YouTube.
[youtube]5pvXkmlaiBk[/youtube]

<script>
function addSpoiler(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[youtube]",from))==-1) return str;
if((pos2=str.indexOf("[/youtube]"),pos+9)==-1) return str;
newpos=str.indexOf("[youtube]",pos+9)
if(newpos<pos2 && newpos!=-1) str=addSpoiler(str,pos+9,true)
if((pos2=str.indexOf("[/youtube]",pos+9))==-1) return str;
str=str.substring(0,pos)+makeSpoiler(str.substring(pos+9,pos2))+str.substring(pos2+10,str.length)
if( str.indexOf("[youtube]")!=-1 && internal==false) str=addSpoiler(str,0,false)
return str}
function makeSpoiler(txt){
txt="<br><embed src=\"http://www.ru.youtube.com/v/"+txt+"\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"425\" height=\"350\"></embed><br>"
return txt}
if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addSpoiler(post.innerHTML,0,false)}}
</script>

Rutube.ru
[rutube1]концовка[/rutube1]

<script>
function addSpoiler(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[rutube1]",from))==-1) return str;
if((pos2=str.indexOf("[/rutube1]"),pos+9)==-1) return str;
newpos=str.indexOf("[rutube1]",pos+9)
if(newpos<pos2 && newpos!=-1) str=addSpoiler(str,pos+9,true)
if((pos2=str.indexOf("[/rutube1]",pos+9))==-1) return str;
str=str.substring(0,pos)+makeSpoiler(str.substring(pos+9,pos2))+str.substring(pos2+10,str.length)
if( str.indexOf("[rutube1]")!=-1 && internal==false) str=addSpoiler(str,0,false)
return str}
function makeSpoiler(txt){
txt="<br><embed src=\"http://video.rutube.ru/"+txt+"\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"425\" height=\"350\"></embed><br>"
return txt}
if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addSpoiler(post.innerHTML,0,false)}}
</script>

Video.Google.com

<script>
function addSpoiler(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[google1]",from))==-1) return str;
if((pos2=str.indexOf("[/google1]"),pos+9)==-1) return str;
newpos=str.indexOf("[google1]",pos+9)
if(newpos<pos2 && newpos!=-1) str=addSpoiler(str,pos+9,true)
if((pos2=str.indexOf("[/google1]",pos+9))==-1) return str;
str=str.substring(0,pos)+makeSpoiler(str.substring(pos+9,pos2))+str.substring(pos2+10,str.length)
if( str.indexOf("[google1]")!=-1 && internal==false) str=addSpoiler(str,0,false)
return str}
function makeSpoiler(txt){
txt="<br><embed style=\"width:400px; height:326px;\" id=\"VideoPlayback\" type=\"application/x-shockwave-flash\" src=\"http://video.google.com/googleplayer.swf?docId="+txt+"&hl=en\" flashvars=\"\"> </embed><br>"
return txt}
if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addSpoiler(post.innerHTML,0,false)}}
</script>

17

Поздравлялка (или предупреждалка). Duka
Скрипт выводит в объявлении текст определенному пользователю. Что там будет написано зависит от вашей фантазии, будь то Поздравление или предупреждение.
Текст будет виден только определенному пользователю, для остальных он не действует

<script language="JavaScript">
if(UserLogin == "Admin")
{
    document.write('<b>Admin, поздравляю с днем рождения!</b>');
}
</script>

Admin - ник получателю сообщения.
Текст сообщения заменяете своим
вставлять, куда душе угодно

18

Анастаси написал(а):

Все аватары по-умолчанию будут иметь отражение.

Теперь все аватары автоматом будут иметь такой эффект по-умолчанию.
Javascript: Versetti
Идея: Lexx
Разработка скрипта: Duka
Инструкция:
В HTML-верх кидаете:
Код:

<script type="text/javascript">
document.getElementsByClassName = function(className) {
var children = document.getElementsByTagName('*') || document.all;
var elements = new Array();
 
for (var i = 0; i < children.length; i++) {
var child = children[i];
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j++) {
if (classNames[j] == className) {
elements.push(child);
break;
}
}
}
return elements;
}

var Reflection = {
defaultHeight : 0.5,
defaultOpacity: 0.5,

add: function(image, options) {
Reflection.remove(image);

doptions = { "height" : Reflection.defaultHeight, "opacity" : Reflection.defaultOpacity }
if (options) {
for (var i in doptions) {
if (!options[i]) {
options[i] = doptions[i];
}
}
} else {
options = doptions;
}

try {
var d = document.createElement('div');
var p = image;

var classes = p.className.split(' ');
var newClasses = '';
for (j=0;j<classes.length;j++) {
if (classes[j] != "reflect") {
if (newClasses) {
newClasses += ' '
}

newClasses += classes[j];
}
}

var reflectionHeight = Math.floor(p.height*options['height']);
var divHeight = Math.floor(p.height*(1+options['height']));

var reflectionWidth = p.width;

if (document.all && !window.opera) {
/* Fix hyperlinks */
                if(p.parentElement.tagName == 'A') {
                var d = document.createElement('a');
                d.href = p.parentElement.href;
                } 
                   
/* Copy original image's classes & styles to div */
d.className = newClasses;
p.className = 'reflected';

d.style.cssText = p.style.cssText;
p.style.cssText = 'vertical-align: bottom';

var reflection = document.createElement('img');
reflection.src = p.src;
reflection.style.width = reflectionWidth+'px';

reflection.style.marginBottom = "-"+(p.height-reflectionHeight)+'px';
reflection.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity='+(options['opacity']*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(options['height']*100)+')';

d.style.width = reflectionWidth+'px';
d.style.height = divHeight+'px';
p.parentNode.replaceChild(d, p);

d.appendChild(p);
d.appendChild(reflection);
} else {
var canvas = document.createElement('canvas');
if (canvas.getContext) {
/* Copy original image's classes & styles to div */
d.className = newClasses;
p.className = 'reflected';

d.style.cssText = p.style.cssText;
p.style.cssText = 'vertical-align: bottom';

var context = canvas.getContext("2d");

canvas.style.height = reflectionHeight+'px';
canvas.style.width = reflectionWidth+'px';
canvas.height = reflectionHeight;
canvas.width = reflectionWidth;

d.style.width = reflectionWidth+'px';
d.style.height = divHeight+'px';
p.parentNode.replaceChild(d, p);

d.appendChild(p);
d.appendChild(canvas);

context.save();

context.translate(0,image.height-1);
context.scale(1,-1);

context.drawImage(image, 0, 0, reflectionWidth, image.height);

context.restore();

context.globalCompositeOperation = "destination-out";
var gradient = context.createLinearGradient(0, 0, 0, reflectionHeight);

gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
gradient.addColorStop(0, "rgba(255, 255, 255, "+(1-options['opacity'])+")");

context.fillStyle = gradient;
if (navigator.appVersion.indexOf('WebKit') != -1) {
context.fill();
} else {
context.fillRect(0, 0, reflectionWidth, reflectionHeight*2);
}
}
}
} catch (e) {
    }
},

remove : function(image) {
if (image.className == "reflected") {
image.className = image.parentNode.className;
image.parentNode.parentNode.replaceChild(image, image.parentNode);
}
}
}

function addReflections() {
var rimages = document.getElementsByClassName('reflect');
for (i=0;i<rimages.length;i++) {
var rheight = null;
var ropacity = null;

var classes = rimages[i].className.split(' ');
for (j=0;j<classes.length;j++) {
if (classes[j].indexOf("rheight") == 0) {
var rheight = classes[j].substring(7)/100;
} else if (classes[j].indexOf("ropacity") == 0) {
var ropacity = classes[j].substring(8)/100;
}
}

Reflection.add(rimages[i], { height: rheight, opacity : ropacity});
}
}

var previousOnload = window.onload;
window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }
</script>

В HTML-низ:
Код:

<script type="text/javascript">
var arr=document.getElementsByTagName("li")
i=0
while(arr[i] ){
if(arr[i].className=="pa-avatar item2"){
name=arr[i].innerHTML
name=name.substring(4)
arr[i].innerHTML="<img class=reflect "+name+" "
}
i++
}
</script>

В Результате у всех пользователей под аватаром будет отражение.

Ничего не работает!

19

Дана
в хтмл-верх

Код:
<script type="text/javascript">
document.getElementsByClassName = function(className) {
	var children = document.getElementsByTagName('*') || document.all;
	var elements = new Array();
  
	for (var i = 0; i < children.length; i++) {
var child = children[i];
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j++) {
	if (classNames[j] == className) {
elements.push(child);
break;
	}
}
	}
	return elements;
}

var Reflection = {
	defaultHeight : 0.5,
	defaultOpacity: 0.5,
	
	add: function(image, options) {
Reflection.remove(image);

doptions = { "height" : Reflection.defaultHeight, "opacity" : Reflection.defaultOpacity }
if (options) {
	for (var i in doptions) {
if (!options[i]) {
	options[i] = doptions[i];
}
	}
} else {
	options = doptions;
}
	
try {
	var d = document.createElement('div');
	var p = image;
	
	var classes = p.className.split(' ');
	var newClasses = '';
	for (j=0;j<classes.length;j++) {
if (classes[j] != "reflect") {
	if (newClasses) {
newClasses += ' '
	}
	
	newClasses += classes[j];
}
	}

	var reflectionHeight = Math.floor(p.height*options['height']);
	var divHeight = Math.floor(p.height*(1+options['height']));
	
	var reflectionWidth = p.width;
	
	if (document.all && !window.opera) {
/* Fix hyperlinks */
                if(p.parentElement.tagName == 'A') {
	                var d = document.createElement('a');
	                d.href = p.parentElement.href;
                }  
                    
/* Copy original image's classes & styles to div */
d.className = newClasses;
p.className = 'reflected';

d.style.cssText = p.style.cssText;
p.style.cssText = 'vertical-align: bottom';
	
var reflection = document.createElement('img');
reflection.src = p.src;
reflection.style.width = reflectionWidth+'px';

reflection.style.marginBottom = "-"+(p.height-reflectionHeight)+'px';
reflection.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity='+(options['opacity']*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(options['height']*100)+')';

d.style.width = reflectionWidth+'px';
d.style.height = divHeight+'px';
p.parentNode.replaceChild(d, p);

d.appendChild(p);
d.appendChild(reflection);
	} else {
var canvas = document.createElement('canvas');
if (canvas.getContext) {
	/* Copy original image's classes & styles to div */
	d.className = newClasses;
	p.className = 'reflected';
	
	d.style.cssText = p.style.cssText;
	p.style.cssText = 'vertical-align: bottom';
	
	var context = canvas.getContext("2d");

	canvas.style.height = reflectionHeight+'px';
	canvas.style.width = reflectionWidth+'px';
	canvas.height = reflectionHeight;
	canvas.width = reflectionWidth;
	
	d.style.width = reflectionWidth+'px';
	d.style.height = divHeight+'px';
	p.parentNode.replaceChild(d, p);
	
	d.appendChild(p);
	d.appendChild(canvas);
	
	context.save();
	
	context.translate(0,image.height-1);
	context.scale(1,-1);
	
	context.drawImage(image, 0, 0, reflectionWidth, image.height);
	
	context.restore();
	
	context.globalCompositeOperation = "destination-out";
	var gradient = context.createLinearGradient(0, 0, 0, reflectionHeight);
	
	gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
	gradient.addColorStop(0, "rgba(255, 255, 255, "+(1-options['opacity'])+")");

	context.fillStyle = gradient;
	if (navigator.appVersion.indexOf('WebKit') != -1) {
context.fill();
	} else {
context.fillRect(0, 0, reflectionWidth, reflectionHeight*2);
	}
}
	}
} catch (e) {
	    }
	},
	
	remove : function(image) {
if (image.className == "reflected") {
	image.className = image.parentNode.className;
	image.parentNode.parentNode.replaceChild(image, image.parentNode);
}
	}
}

function addReflections() {
	var rimages = document.getElementsByClassName('reflect');
	for (i=0;i<rimages.length;i++) {
var rheight = null;
var ropacity = null;

var classes = rimages[i].className.split(' ');
for (j=0;j<classes.length;j++) {
	if (classes[j].indexOf("rheight") == 0) {
var rheight = classes[j].substring(7)/100;
	} else if (classes[j].indexOf("ropacity") == 0) {
var ropacity = classes[j].substring(8)/100;
	}
}

Reflection.add(rimages[i], { height: rheight, opacity : ropacity});
	}
}

var previousOnload = window.onload;
window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }
</script>

в хтмл-низ

Код:
<script type="text/javascript">
var arr=document.getElementsByTagName("li")
i=0
while(arr[i] ){
if(arr[i].className=="pa-avatar item2"){
name=arr[i].innerHTML
name=name.substring(4)
arr[i].innerHTML="<img class=reflect "+name+" "
}
i++
}
</script>

Вы здесь » Форум Техподдержки Nowbb.Ru » Скрипты и дополнения » Новые возможности. Скрипты.


© NowBB.ru- cоздать форум совершенно бесплатно!