Задача такова. Необходимо усовершенствовать скрипт, который добывлял в статус звездочки при достижении определенного числа сообщений. А точнее добавить в него ветвление. т.е чтобы участникам одной группы он добавлял квадратики, а участникам второй - кружочки.
Зависимость статуса от сообщений и группы
Сообщений 1 страница 20 из 22
Поделиться2Ср, 31 Янв 2007 23:56:16
Необходимо усовершенствовать скрипт
усовершенствовать или написать?
Поделиться3Ср, 31 Янв 2007 23:59:21
Seebostian Weiss
А где вы этот скрипт видели?
Поделиться4Чт, 1 Фев 2007 00:19:42
Точно не помню где (а иначе не стал бы спрашивать), но был скрипт, который ставил в соответствие количеству сообщений определнное количесвто звездочек в статус. как бы аналог рангов, но с помощь скрипта. так как в ранге просто не поместилось бы сслок на три изображения...
Поделиться5Чт, 1 Фев 2007 00:25:59
А вот кстати и скрипт:
<script>
forum = new String(location);
x = forum.length;
if (forum.charAt(x-2) != "=") {forum = forum.charAt(x-2)+forum.charAt(x-1)} else {forum = forum.charAt(x-1)}
forum="forum_f"+forum;
theme = window.document.getElementById(forum).getElementsByTagName("span")[1].innerHTML;
theme = theme.charAt(11)+theme.charAt(12);
x=1;
for (i=0;i<theme;i++) {
star="rank0";
post = window.document.getElementById(forum).getElementsByTagName("td")[x].innerHTML;
if (post > 1) {star="<img src=Адрес картинки>"}
if (post > 15) {star="<img src=Адрес картинки>"}
if (post > 30) {star="<img src=Адрес картинки>"}
if (post > 55) {star="<img src=Адрес картинки>"}
if (post > 80) {star="<img src=Адрес картинки>"}
window.document.getElementById(forum).getElementsByTagName("td")[x].innerHTML += star;
x +=4;
}
</script>
Поделиться6Чт, 1 Фев 2007 14:21:22
Seebostian Weiss
брррррр. Это мы усовершенствовать не будем, ибо это не скрипт, а 4какой-то винегрет с тушеными сосисками.
Мня волнует другое. Чтобы такй скрипт работал, надо чтобы в информации о пользователе всега по умолчанию имелась пометка о том, к какой группе пользователь относится. Есть два варианта. Либо будете ее прописывать в дополнительном поле. Либо в статусу в ручную. Выбирайте - отсюда будем плясать.
Поделиться7Чт, 1 Фев 2007 23:35:35
Как я понял нужна некая пометка принадлежности пользователя к той или иной группе? тогда так. У нас для каздой группы в статусе есть графические элементы.
В стату с пользователя автоматически заносим его принадлежность к группе: группа1 группа2 группа3. Я так понял, что в теле скрипта будет стаять цикл, так что: если статус == исходное_значение1 то тогда статус == 1_выходное_значение1 + 2_выходное_ значение_х, и так для каждого возможного значения статуса, в нашем случает 3. я правильно понимаю. Таким образом до скрипта у нас в статусе отображаетс некий ID группы, а после скрипта будет в статусе 1_выходное_значение1 + 2_выходное_ значение_х причем х зависит от числа сообщений...
лучше напишу на карявом...
arr1=['gr1', 'gr2', 'gr3'] //всевозможные ID групп в статусе
arr2==['zvezda', 'krest', 'nolik'] //специфические названия фалов звездочек для различных групп
for i = 1 to 3 {
if user.stus = arr[i] {
star="<img src='"+ arr2[i] +"0.gif'>"
if user.post >0 {star="<img src='"+ arr2[i] +"1.gif'>"}
if user.post >10 {star="<img src='"+ arr2[i] +"2.gif'>"}
if user.post >50 {star="<img src='"+ arr2[i] +"3.gif'>"}
if user.post >100 {star="<img src='"+ arr2[i] +"4.gif'>"}
if user.post > 500 {star="<img src='"+ arr2[i] +"5.gif'>"}
}
}
таким образом у нас получаются свои звездочки для каждой группы.
теперь бы хорошо было бы оформить данный скрипт по всем правилам...
я так понял, что параметры пользователя КОЛИЧЕСВОПОСТОВ и СТАТУС можно получить в переменную
Поделиться8Чт, 1 Фев 2007 23:51:18
Цикл будет, но не в том. Хорошо, напишу через пометку в статусе.
Поделиться9Пт, 2 Фев 2007 02:37:58
Буду очень ждать, только когда будете выкладывать скрипт сразу тему не закрывайте, думаю у меня возникнут некоторые вопросы. Да и не у меня одного.
С уважением
Сеебостьяан Вайс Кудараусскас дела Корбин,
Старейшина Альмарэина - Города Эльфов.
Поделиться10Пт, 2 Фев 2007 02:38:40
ок. Но это уже , извините до завтра. Поздно для мыслительных процессов. ))
Поделиться11Пт, 2 Фев 2007 02:51:05
Сеебостьяан Вайс Кудараусскас дела Корбин,
Старейшина Альмарэина - Города Эльфов
А это, что за жук? Простите меня за флуд...
Поделиться13Пт, 2 Фев 2007 13:17:11
Может сделать статус зависимым от этого скрипта:
<script type="text/javascript"> var cont=document.getElementsByTagName("legend") if (cont[0].innerHTML.indexOf("Укажите дополнительные данные")!=-1) {document.getElementById('fld1').style.display="none" var form=document.getElementById('profile8').innerHTML var init=document.getElementById('fld1').value document.getElementById('profile8').innerHTML=form.substring(0, (form.indexOf("fld1")-11))+"<select id='subst'>"+"<option value ='Ситх'>Ситх</option>"+"<option value ='Джедай'>Джедай</option>"+"<option value='Контрабандист'> Контрабандист </option>"+"</select>"+form.substr((form.indexOf("fld1")-11)) document.getElementById('subst').value=document.getElementById('fld1').value document.getElementsByName('update')[0].onclick=transForm} function transForm() {document.getElementById('fld1').value=document.getElementById('subst').value return true} </script> Вместо синих слов - вставляете свои ранги-опции. Чтобы увеличить их количество размножайте в скрипте этот блок "<option value='ведьма'>ведьма</option>" вместо красного троеточия (если рангов больше не надо. тоеточие выкиньте), соединяя их между собой плюсами. Если речь идет о втором посчету, а не опервом доп поле в профиле, в скрипте ВЕЗДЕ fld1 замените на fld2
Поделиться14Пн, 5 Фев 2007 20:48:08
это совсем не то. Выложенный Вами скрипт - это добавление в одно из полей прсотого селектора... а это не то что нужно.
Или же это просто попутная просьба? тогда возникает вопрос: раз информация данного селектора и так отображается в доп. поле. зачем ее еще заносить в статус. (статус автоматически будет отображать поле из группы, если его не заполнять в профиле... )
Zebra, как там скрипт? =) понимаю, что таких как я пользователей данного ресурса не мало, но все же...
Поделиться15Ср, 7 Фев 2007 13:03:34
Zebra, просьба все еще актуальна
Поделиться16Вс, 11 Фев 2007 01:05:15
<script type="text/javascript">
var modir=document.getElementsByTagName("li")for (x in modir)
if (modir[x].className=="pa-title")
{
if(modir[x].innerHTML.indexOf("Администрация")!=-1)
modir[x].innerHTML="<img src='Адрес картинки' />"
}
</script>
вот скрипт зависимости от статуса. нужно изменить чтобы зависело от поля№1. добавить еще зависимость от количества сообщений. Ну помогите же!
Поделиться17Вс, 11 Фев 2007 01:08:36
как я понял нужновместо modir[x].className=="pa-title" поставить modir[x].className=="pa-fld1" и там уже проверять. таким же образом можно подобраться и к числу сообщений?:???
Поделиться18Вс, 11 Фев 2007 01:14:31
Seebostian Weiss
эхххх... такой вы настойчивый....... лана, сейчас покурю - напишу, зайдите через полчасика.
Поделиться19Вс, 11 Фев 2007 01:31:40
Кстати говоря скрипт, который я написал у меня почему-о не работает...
точнее как. оно работает только рядом с сообщениями, а вот на закладке УЧАСТНИКИ нет... может что-то где-то подправить?
Отредактировано Seebostian Weiss (Вс, 11 Фев 2007 01:38:40)
Поделиться20Вс, 11 Фев 2007 02:09:01
Seebostian Weiss
держите
<script type="text/javascript">
var authors=document.getElementById('pun-main').getElementsByTagName("ul")
var cd=0
for (cd=0; cd<=(authors.length-1); cd++)
{if (authors[cd].innerHTML.indexOf("pa-author")!=-1)
{var posts=authors[cd].getElementsByTagName("li")
var ze=1
for (ze=1; ze<=(posts.length-1); ze++)
{var group=posts[1].innerHTML
if (posts[ze].className=="pa-posts")
{var status=(posts[ze].innerHTML.substr((posts[ze].innerHTML.indexOf(":")+2)))*1
if (status<10)
{if (group.indexOf("хорьки")!=-1)
{posts[1].innerHTML="Fig1"}
else if (group.indexOf("коржики")!=-1)
{posts[1].innerHTML="Fig2"}}
else if ((status>=10)&&(status<50))
{if (group.indexOf("хорьки")!=-1)
{posts[1].innerHTML="Fig1"}
else if (group.indexOf("коржики")!=-1)
{posts[1].innerHTML="Fig2"}}
else if ((status>=50)&&(status<100))
{if (group.indexOf("хорьки")!=-1)
{posts[1].innerHTML="Fig1"}
else if (group.indexOf("коржики")!=-1)
{posts[1].innerHTML="Fig2"}}
else if ((status>=100)&&(status<500))
{if (group.indexOf("хорьки")!=-1)
{posts[1].innerHTML="Fig1"}
else if (group.indexOf("коржики")!=-1)
{posts[1].innerHTML="Fig2"}}
else if (status>=500)
{if (group.indexOf("хорьки")!=-1)
{posts[1].innerHTML="Fig1"}
else if (group.indexOf("коржики")!=-1)
{posts[1].innerHTML="Fig2"}}
}}}}
</script>
Кароче хорьки и коржики - это у вас две группы. Хотите зовите по другому. Соответсвенно везде в скрипте хорьки и коржики заменить на свое.
Прописываем каждому челу в статус его группу. Название может быь условным ибо его никто не увидит.
Дальше по скрипту надеюсь разберетесь, по циферкам постов, куда совать адреса картинки
на картинку надо менять Fig1 и Fig2
Делаете так
Там, нгде например "Fig1" пишете "<img src='...' />" Одинарные и двойные кавычки цередую не случайно не перепутайте.