Ru-Board.club
← Вернуться в раздел «Помощь по Ru.Board»

» Ru-Board Helper Игнор-лист и другие полезные фичи

Автор: Jans
Дата сообщения: 05.02.2010 08:11
весьма и весьма пользительный по нынешним временам скрипт, как бы прискорбно это не звучало ...

Opera 10.10 - ок

Добавлено:

единственное, о чем хотелось бы попросить, сместить объекты согласно скрина, эстетики для

ru-board-helper.user.js
v2.3
Автор: bredonosec
Дата сообщения: 05.02.2010 10:23
Ke

Цитата:
Теперь, если нажать на Vote, то вверху покажется табличка где будет показано, что так проголосовал 1 человек. Если такую строчку в свой постинг вставят двое, то в табличке будет записано 2 человека и т. д.

а без наличия поста не сработать никак? ну, чтоб ветки не засорять страницами из сплошь "мне полезен" в отношении одного из ранее бывших скриптов..
Автор: NPC
Дата сообщения: 05.02.2010 11:43
думаете вам Батва позволит издеваться над форумом?
как бы всех в бан не отправил толпой
не нравятся здешние тролли, уходите из форума, в чём проблема то
Автор: vv07
Дата сообщения: 05.02.2010 11:58
NPC
Вы опять за свое,тролль вы наш местный ?Вроде извинялись уже.Наверное опять моча в голову ударила?
Автор: NPC
Дата сообщения: 05.02.2010 12:07
vv07

Цитата:
Зарегистр. 04-07-2006


Цитата:
Вы опять за свое,тролль вы наш местный

а Вам не нравится, что слишком нежный для ру борда? так уходите, я не держу
Автор: vv07
Дата сообщения: 05.02.2010 12:25
NPC
Я уж сам как нибуть решу,где мне нравиться,а где нет
Автор: NPC
Дата сообщения: 05.02.2010 12:40
vv07 тогда зачем вам выпендрёж в ковырянии форума
я ж говорю не нравится контингент, уходите с ру борда
блин, всякие недо приходят, и портят репутацию форума. мол плохой контингент, нужен скрипт, я бы банил сразу таких, не нравится, до свиданья, общайтесь там где контингент подходит по вам
Автор: JekaKot
Дата сообщения: 06.02.2010 13:28
Скрипто-писатели, возможно ли написание скрипта

1. скрывающего шапку при просмотре темы?
Часто темы имеют запредельное количество страниц, "версия для печати" не всегда помогает и удобна, да и зачем грузить всю тему, когда надо-то посмотреть 5-10 последних страниц

2. изменить количество постов на странице (ну или грузить n-ое количество страниц сразу)

3. отображать только посты одного автора по всей теме?

NPC
vv07
Вы еще подеритесь, Silver Member
Автор: bredonosec
Дата сообщения: 06.02.2010 15:41
JekaKot

Цитата:
1. скрывающего шапку при просмотре темы?
Часто темы имеют запредельное количество страниц, "версия для печати" не всегда помогает и удобна, да и зачем грузить всю тему, когда надо-то посмотреть 5-10 последних страниц

http://forum.ru-board.com/topic.cgi?forum=13&topic=1534&glp#1

Цитата:
изменить количество постов на странице

там же.
Автор: klarus
Дата сообщения: 06.02.2010 17:40
+1 Большое спасибо!
ps попал сюда, отслеживая профиль одного тролля, а он и здесь "пометил"...
Автор: carbonsky
Дата сообщения: 06.02.2010 20:32
klarus

Цитата:
попал сюда, отслеживая профиль одного тролля

Тролль искал здесь защиту от собратьев? Еще раз можно высказать благодарность автору скрипта, даже тролли им пользуются по видимому.


Хотел узнать: как поменять цвет, которым подсвечиваются френды? Салатовый не нравится почему то.
Автор: Runtime_err0r
Дата сообщения: 06.02.2010 20:47
carbonsky
Очевидно, что надо изменить значение переменной FriendsColor

Цитата:
var FriendsColor = '#cfffcf';

Автор: Ke
Дата сообщения: 06.02.2010 23:17
data man (05:58 03-02-2010)
Цитата:
Я хоть и программист, но с Java и HTML знаком чуть более, чем очень мало, увы.
Возникла такая идея: добавить в панель тэгов некоторые полезные кнопки.
Если это не архисложно, конечно.
К примеру, несколько видов цитирования (если не ошибаюсь, автор скрипта - LEX1)


Добавил кнопку Quote, туда же, где Ignore, Find, Status и прочее.
Надо выделить текст мышью и нажать на Quote.

Возможно в некоторых ситуациях не работает. Так как выделять мышью можно как попало, и все случаи не предусмотришь.

[more=скрипт ( версия 2.6 )]
// ==UserScript==
// @name Ru-Board Helper
// @version 2.6 (06Feb10 23:12:21)
// @include http://forum.ru-board.com/*
// ==/UserScript==

(function() {
var IgnName = 'Ignore';
var FrndsName = 'Friends';
var StatName = 'Nick-';
var NickSrchName = 'NickSearch';
var TextSrchName = 'TextSearch';
var Delim1 = ',';
var IgnCnt = -1;
var SrchInPth = 'topic.cgi';
var SrchForum = 'forum.cgi';
var FrmsName = 'Forums';
var IgnM = new Array();
var UseNickSearch = true; // false;
var UseTextSearch = true; // false;
var UseQuote = true; // false;
var LastNickFind = '';
var UseFriends = true; // false;
var FriendsColor = '#cfffcf';
var TblText1s = '<table align="center" bgcolor="#999999" border="0" cellpadding="3" cellspacing="1" width="95%">';
var TblText1e = '</table>';
var AddForumS = 'AddForum';
var IsAddForums = true; // false;
var UseHideLink = true;
var UseIgnore = true;
var isUseAddPages = true; // false
var isUseStatus = true; // false
var isUseVeche = true; // false;
var FrmLoadListS = '';
var FrmLoaded = '';
var CookDate1 = new Date("1 May 2100 11:00");

function HideText(NickName, TrTag) {
DivTag = TrTag.getElementsByTagName('div');
if (!((DivTag.length > 0) && (DivTag[0].id.indexOf('Ignor') == 0))) {
if (TrTag.name == undefined) {
IgnCnt = IgnCnt +1;
IgnM[IgnCnt] = TrTag.innerHTML;
TrTag.name = IgnCnt;
} else {
IgnCnt = TrTag.name;
}
Ind1 = IgnCnt;
TrTag.innerHTML = ''
+'<td>'
+'<div ID=Ignor' +Ind1
+' Align=left><font class=tit>&nbsp;User <b>' +NickName +'</b>'
+'<font style="FONT-SIZE:10pt;COLOR:#333333;" class="StatusBlock2" '
+'title="' +NickName +'" ' +'></font>'
+' ignored. '
+'<a Name=' +Ind1 +' ID=AIgnor' +Ind1
+' href=javascript:UnIgn("Ignor' +Ind1
+'")><u>Show message</u></a></font>'
+'</div>'
+'</td>'
;
document.getElementById('AIgnor' +Ind1).addEventListener("click",
function() {UnIgn(this.name)}, false);
var TbTag1 = TrTag.parentNode.parentNode;
if (TbTag1 != null) {TbTag1.cellPadding = "0"}
}
}

function main(IgnS, isAddLinks, Reverse, FriendsList, SearchText) {
var isSearchText = ((SearchText != undefined) && (SearchText != ''));
if (isSearchText) {Wrlds1 = splitSrch(SearchText);}
if (IgnS == undefined) {IgnS = ''}
var Ign = IgnS.split(Delim1);
var TrT = document.getElementsByTagName('tr');
for (var i = 0; i < TrT.length ; i++) {
var Btag = TrT[i].getElementsByTagName('b');
if (Btag.length == 0) continue;
if (isAddLinks) {
var TdTag = TrT[i].getElementsByTagName('td');
if (TdTag.length >= 3) {
if (TdTag[2].className=="tpc") {
var s2 = '';
if (UseHideLink) {
s2 = s2
+'<a class="tpc" title="Hide this block' +'"'
+' name="' +Btag[0].innerHTML +'"'
+' ID=AHideLink' +i
+' href=javascript:HidePost1("' +Btag[0].innerHTML +'")'
+'>[-]</a> '
;
}
if (UseIgnore) {
s2 = s2
+'<a class="tpc" title="Add or remove ' +"'" +Btag[0].innerHTML
+"'" +' from Ignore List" name="' +Btag[0].innerHTML +'"'
+' ID=IgnorLink' +i
+' href=javascript:AddDelIgn("IgnorLink' +i +'")>Ignore'
+'</a> | ';
}
if (UseFriends) {
s2 = s2
+'<a class="tpc" title="Add or remove ' +"'" +Btag[0].innerHTML
+"'" +' in Friends List" name="' +Btag[0].innerHTML +'"'
+' ID=FriendsLink' +i
+' href=javascript:AddDelFrnd("FriendsLink' +i +'")>Friend'
+'</a> | ';
}
if (UseNickSearch) {
s2 = s2
+'<a class="tpc" title="Show or hide all messages from '
+"'" +Btag[0].innerHTML
+"'" +'" name="' +Btag[0].innerHTML +'"'
+' ID=ANickSrch' +i
+' href=javascript:NickSrch("' +Btag[0].innerHTML +'")'
+'>Find</a>'
+' | ';
}
if (isUseStatus) {
s2 = s2
+'<a class="tpc" title="Add custom status for '
+"'" +Btag[0].innerHTML
+"'" +'" name="' +Btag[0].innerHTML +'"'
+' ID=ACustStat' +i
+' href=javascript:EditCustStat("' +Btag[0].innerHTML +'")'
+'>Status</a>'
+' | ';
}
if (UseQuote) {
s2 = s2
+'<a class="tpc" title="Advanced quote message"'
+' ID=AInsSel' +i
+' href=javascript:InsertSel1()>Quote'
+'</a> | ';
}
TdTag[2].innerHTML = ''
+s2
+TdTag[2].innerHTML;
if (UseIgnore) {
document.getElementById('IgnorLink' +i).addEventListener("click",
function() {AddDelIgn(this.id)}, false)}
if (UseFriends) {
document.getElementById('FriendsLink' +i).addEventListener("click",
function() {AddDelFrnd(this.id)}, false)}
if (UseNickSearch) {
document.getElementById('ANickSrch' +i).addEventListener("click",
function() {NickSrch(this.name)}, false)}
if (UseHideLink) {
document.getElementById('AHideLink' +i).addEventListener("click",
function() {HidePost1(this.id)}, false)}
if (isUseStatus) {
document.getElementById('ACustStat' +i).addEventListener("click",
function() {EditCustStat(this.name)}, false)}
if (isUseStatus) {
FntTgs1 = TdTag[1].getElementsByTagName('font');
if (FntTgs1.length==0) {
FTg1 = document.createElement('font');
FTg1.className = 'StatusBlock';
FTg1.title = Btag[0].innerHTML
FTg1.innerHTML = '';
TdTag[1].appendChild(FTg1);
}
}
if (UseQuote) {
document.getElementById('AInsSel' +i).addEventListener("click",
function() {InsertSel1()}, false)}
}
}
}
if (isSearchText) {
var HrT = TrT[i].getElementsByTagName('hr');
if (HrT.length > 1) {
var Find1 = false;
var k1 = 0;
var SpnT = TrT[i].getElementsByTagName('span');
if (SpnT.length > 0) {
var s = SpnT[0].textContent;
for (var j = Wrlds1.length -1; j >= 0; j--) {
if (s.toLowerCase().indexOf(Wrlds1[j].toLowerCase()) > 0) {
Find1 = true;
break;
}
}
if (!Find1)
{
HideText(Btag[0].innerHTML, TrT[i])
}
}
}
} else
{
if (Reverse) {
var HrT = TrT[i].getElementsByTagName('hr');
if (HrT.length <= 1) continue;
var Find1 = false;
var k1 = 0;
for (var j = Ign.length -1; j >= 0; j--) {
if (Btag[0].innerHTML == Ign[j]) {
Find1 = true;
break;
}
}
if (!Find1) {HideText(Btag[0].innerHTML, TrT[i])}
} else {
for (var j = Ign.length -1; j >= 0; j--) {
if (Btag[0].innerHTML == Ign[j]) {
HideText(Ign[j], TrT[i]);
break;
}
}
}
}
}
if (isSearchText) {
for (var i = IgnCnt; i >= 0; i--){
var DivTag1 = document.getElementById('Ignor' +i);
if (DivTag1 == null) continue;
var BTag2 = DivTag1.getElementsByTagName('b');
if (BTag2.length <= 0) continue;
var DTag2 = document.createElement("div");
DTag2.innerHTML = IgnM[i];
var SpnT2 = DTag2.getElementsByTagName('span');
if (SpnT2.length > 0) {
var s = SpnT2[0].textContent;
for (var j = Wrlds1.length -1; j >= 0; j--) {
if (s.toLowerCase().indexOf(Wrlds1[j].toLowerCase()) >= 0) {
UnIgn(i);
break;
}
}
}
}
} else
{
if (Reverse) {
for (var i = IgnCnt; i >= 0; i--){
var DivTag1 = document.getElementById('Ignor' +i);
if (DivTag1 == null) continue;
var BTag2 = DivTag1.getElementsByTagName('b');
if (BTag2.length <= 0) continue;
for (var j = 0; j < Ign.length; j++) {
if (BTag2[0].innerHTML == Ign[j]) {
UnIgn(i);
break;
}
}
}
} else {
for (var i = IgnCnt; i >= 0; i--){
var DivTag1 = document.getElementById('Ignor' +i);
if (DivTag1 == null) continue;
var BTag2 = DivTag1.getElementsByTagName('b');
if (BTag2.length <= 0) continue;
var Find1 = 0;
for (var j = 0; j < Ign.length; j++) {
if (BTag2[0].innerHTML == Ign[j]) {
Find1 = 1;
break;
}
}
if (Find1==0) {UnIgn(i)}
}
}
}
IgnLinkColor();
if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
SetStauses();
}

if (document.location.pathname.indexOf(SrchInPth) > -1) {
main(getCookie(IgnName), true, false);
}

function SetStauses() {
var FntTg1 = document.getElementsByTagName('font');
for (var i = 0; i < FntTg1.length ; i++) {
if (FntTg1[i].className.indexOf('StatusBlock')!=0) continue;
var sCook1 = getCookie(StatName +FntTg1[i].title);
if (sCook1 == undefined) {sCook1=''} else {
if (sCook1=='') {
deleteCookie(StatName +FntTg1[i].title);
sCook1='';
} else {
if (FntTg1[i].className.indexOf('StatusBlock2')==0) {
sCook1 = ' ( ' +sCook1 + ' ) '
} else {
sCook1='<br>'+sCook1
}
}
}
FntTg1[i].innerHTML = sCook1;
}
}

function SetFriendsColor(FriendsList) {
if ((FriendsList != undefined) && (UseFriends)) {
var TrT = document.getElementsByTagName('tr');
var Frnd = FriendsList.split(Delim1);
for (var i = 0; i < TrT.length ; i++) {
var Btag = TrT[i].getElementsByTagName('b');
if (Btag.length == 0) continue;
var TdTag = TrT[i].getElementsByTagName('td');
if (TdTag.length >= 3) {
if (TdTag[2].className=="tpc") {
if ((FriendsList != undefined) && (UseFriends)) {
var Find2 = false;
for (var j = 0; j < Frnd.length ; j++) {
if (Btag[0].innerHTML == Frnd[j]) {
Find2 = true;
break;
}
}
if (Find2) {
TdTag[1].bgColor = FriendsColor;
} else {
TdTag[1].bgColor = TdTag[2].bgColor;
}
}
}
}
}
}
}

function IgnLinkColor(){
var TrT = document.getElementsByTagName('tr');
var Ign2 = getCookie(IgnName);
if (Ign2 == undefined) {Ign2 = ''}
for (var i = 0; i < TrT.length ; i++) {
var ATag = document.getElementById('IgnorLink' +i);
if (ATag==null) continue;
if (IsTextInStr(ATag.name, Ign2, Delim1)) {
ATag.innerHTML = '<font Color=#FF0000>Ignore</font>'
} else {
ATag.innerHTML = 'Ignore'
}
}
}

function UnIgn(IgnCnt){
var PrTag1 = document.getElementById('Ignor' +IgnCnt).parentNode.parentNode;
PrTag1.innerHTML = IgnM[IgnCnt];
IgnLinkColor();
if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
var Tgs1 = PrTag1.getElementsByTagName('a');
if (UseIgnore) {
for (var i = 0; i < Tgs1.length ; i++) {
if (Tgs1[i].id.indexOf('IgnorLink') == 0) {
Tgs1[i].addEventListener("click", function() {AddDelIgn(this.id)}, false);
break;
}
}
}
if (UseFriends) {
for (var i = 0; i < Tgs1.length ; i++) {
if (Tgs1[i].id.indexOf('FriendsLink') == 0) {
Tgs1[i].addEventListener("click", function() {AddDelFrnd(this.id)}, false);
break;
}
}
}
if (UseNickSearch) {
for (var i = 0; i < Tgs1.length ; i++) {
if (Tgs1[i].id.indexOf('ANickSrch') == 0) {
Tgs1[i].addEventListener("click", function() {NickSrch(this.name)}, false);
break;
}
}
}
if (UseHideLink) {
for (var i = 0; i < Tgs1.length ; i++) {
if (Tgs1[i].id.indexOf('AHideLink') == 0) {
Tgs1[i].addEventListener("click", function() {HidePost1(this.id)}, false);
break;
}
}
}
if (isUseStatus) {
for (var i = 0; i < Tgs1.length ; i++) {
if (Tgs1[i].id.indexOf('ACustStat') == 0) {
Tgs1[i].addEventListener("click", function() {EditCustStat(this.name)}, false);
break;
}
}
}
if (UseQuote) {
for (var i = 0; i < Tgs1.length ; i++) {
if (Tgs1[i].id.indexOf('AInsSel') == 0) {
Tgs1[i].addEventListener("click", function() {InsertSel1()}, false);
break;
}
}
}
var TbTag1 = PrTag1.parentNode.parentNode;
if (TbTag1 != null) {TbTag1.cellPadding = "5"}
SetStauses();
}

function EditIgn() {
var s = getCookie(IgnName);
if (s == undefined) {s = ''}
if (s==null) {s='';}
s = prompt('Ignore editor. Put enimies here. Example: Freak, Troll', s.replace(/^,/g,""));
if(s!=null){
setCookie(IgnName,PrsUsersList(s),{expires:CookDate1});
main(getCookie(IgnName), false);
}
};

function EditFrnds() {
var s = getCookie(FrndsName);
if (s == undefined) {s = ''}
if (s==null) {s='';}
s = prompt('Ignore editor. Put friends here. Example: Me, Mine, Myself', s.replace(/^,/g,""));
if(s!=null){
setCookie(FrndsName,PrsUsersList(s),{expires:CookDate1});
SetFriendsColor(getCookie(FrndsName));
}
};

function EditCustStat(aName) {
var s = getCookie(StatName +aName);
if (s == undefined) {s = ''}
if (s==null) {s='';}
s = prompt('Status editor. Write your opinion about '
+"'" +aName +"'" +' here.', s);
if(s!=null){
setCookie(StatName +aName,s,{expires:CookDate1});
SetStauses();
}
};

if (document.location.pathname.indexOf(SrchInPth) > -1) {
var Td2T = document.getElementsByTagName('td');
for (var i = 0; i < Td2T.length ; i++) {
if ((Td2T[i].className=="dats") && (Td2T[i].align=="right")){
var s1 = '';
if (UseTextSearch) {
var s2 = getCookie(TextSrchName);
if (s2==undefined) {s2=''} else {s2 = s2.replace(/'/g,'')}
s1 = s1 +''
+'<div Title="Example: ' +"'" +'Metallica, &quot;Iron Maiden&quot;'
+"'" +'. Empty line - all posts">Text search '
+'<input Type=text ID=TextSrEdit'
+" value='" +s2 +"'"
+' onkeydown="javascript:if(event.keyCode==13)'
+'document.getElementById(' +"'TextSrBtn'" +').click();"'
+'>'
+'<button Type=button Name=TextSrBtn ID=TextSrBtn OnClick=javascript:TextSrch()>&gt;</button></div>'
;
}
if (UseNickSearch) {
var s2 = getCookie(NickSrchName);
if (s2==undefined) {s2=''} else {s2 = s2.replace(/"/g,'')}
s1 = s1 +''
+'<div Title="Example: ' +"'" +'MyNick, Friend, Etc'
+"'" +'. Empty line - reset">Nick search '
+'<input Type=text ID=NickEdit '
+' value="' +s2 +'"'
+' onkeydown="javascript:if(event.keyCode==13)'
+'document.getElementById(' +"'NickBtn'" +').click();"'
+'>'
+'<button Type=button Name=NickBtn ID=NickBtn OnClick=javascript:NickSrch()>&gt;</button></div>'
;
}
if (UseIgnore) {
s1 = s1 +''
+'&nbsp;<a ID=IgnEditor title="Ignore List editor" '
+'href=javascript:EditIgn()>Ignore Editor</a> &#149; '
}
if (UseFriends) {
s1 = s1 +''
+'<a ID=IgnFriends title="Friends List editor" '
+'href=javascript:EditFrnds()>Friends Editor</a> &#149; '
}
if (isUseVeche) {
s1 = s1 +''
+'<a ID=AVoteLink title="Calculate votes" '
+'href=javascript:CalcVeche("")>Votes</a> &#149; '
}
Td2T[i].innerHTML = s1 +Td2T[i].innerHTML;
if (UseIgnore) {
document.getElementById('IgnEditor').addEventListener("click",
function() {EditIgn()}, false);
}
if (UseNickSearch) {
document.getElementById('NickBtn').addEventListener("click",
function() {NickSrch()}, false);
}
if (UseTextSearch) {
document.getElementById('TextSrBtn').addEventListener("click",
function() {TextSrch()}, false);
}
if (UseFriends) {
document.getElementById('IgnFriends').addEventListener("click",
function() {EditFrnds()}, false);
}
if (isUseVeche) {
document.getElementById('AVoteLink').addEventListener("click",
function() {CalcVeche("")}, false);
}
break;
}
}
}

function HidePost1(anID) {
var aHideLink = document.getElementById(anID);
if (aHideLink != null) {
var aTr = aHideLink.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
if (aTr != null) {HideText(aHideLink.name, aTr)}
}
SetStauses();
}

function NickSrch(aName) {
if (aName == undefined) {
var s = PrsUsersList(document.getElementById('NickEdit').value);
setCookie(NickSrchName,s,{expires:CookDate1});
} else {
if (IsTextInStr(aName, LastNickFind, Delim1)) {
var s = RemoveTextFromStr(aName, LastNickFind, Delim1);
} else {
var s = PrsUsersList(LastNickFind +Delim1 +aName);
}
}
LastNickFind = s;
if (s==null) {
main(getCookie(IgnName), false)
} else {
if (s=='') {
main(getCookie(IgnName), false);
} else {
main(s, false, true);
}
}
};

function TextSrch() {
var s = document.getElementById('TextSrEdit').value;
setCookie(TextSrchName,s,{expires:CookDate1});
if ((s==null)
) {
main(getCookie(IgnName), false)
} else {
main('', false, false, '', s);
}
};

function IsTextInStr(Name, List, Delimetr) {
if (List==undefined) {return false} else {
var s = List.split(Delimetr);
var Find1 = false;
for (var j = s.length -1; j >= 0; j--) {
if (s[j] == Name) {
Find1 = true;
s.splice(j, 1);
break;
}
}
return Find1;
}
}

function RemoveTextFromStr(Name, List, Delimetr)
{
var sl1 = List.split(Delimetr);
var Find1 = false;
for (var j = sl1.length -1; j >= 0; j--) {
if (sl1[j] == Name) {
sl1.splice(j, 1);
Find1 = true;
}
}
return Find1 ? sl1.join(Delimetr) : List;
}

function AddDelIgn(IgnTagName){
var aTag = document.getElementById(IgnTagName);
var sName1 = aTag.name;
var s1 = getCookie(IgnName);
if (s1 == undefined) {s1 = ''}
if (IsTextInStr(sName1, s1, Delim1)) {
if (confirm('(-) Remove "' +sName1 + '" from Ignore?')) {
var s2 = RemoveTextFromStr(sName1, s1, Delim1);
if (s2 != s1) {
setCookie(IgnName, s2,{expires:CookDate1});
main(s2, false);
}
}
} else {
if (confirm('(+) Add "' +sName1 + '" to Ignore?')) {
s1 = s1 +Delim1 +sName1;
setCookie(IgnName, s1,{expires:CookDate1});
main(s1, false);
}
}
}

function AddDelFrnd(FrndTagName){
var aTag = document.getElementById(FrndTagName);
var sName1 = aTag.name;
var s1 = getCookie(FrndsName);
if (s1 == undefined) {s1 = ''}
if (IsTextInStr(sName1, s1, Delim1)) {
if (confirm('(-) Remove "' +sName1 + '" from Friends?')) {
var s2 = RemoveTextFromStr(sName1, s1, Delim1);
if (s2 != s1) {
setCookie(FrndsName, s2,{expires:CookDate1});
if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
}
}
} else {
if (confirm('(+) Add "' +sName1 + '" to Friends?')) {
s1 = s1 +Delim1 +sName1;
setCookie(FrndsName, s1,{expires:CookDate1});
if (UseFriends) {SetFriendsColor(getCookie(FrndsName));}
}
}
}

if ((isUseAddPages) && (document.location.pathname.indexOf(SrchInPth) > -1)) {
function AddPageLinks1(aTag) {
if ((aTag.className = 'small')
&& (aTag.colSpan == 2)
&& (aTag.align == 'left')
) {
if (aTag.getElementsByTagName('div').length >0) return false;
if (aTag.getElementsByTagName('table').length >0) return false;
if (aTag.getElementsByTagName('form').length >0) return false;
if (aTag.getElementsByTagName('input').length >0) return false;
var s1 = document.location.href;
s = ''
+' <a title="Show all pages" href='
+SetUrlTxt(s1, 'all').replace(/glp&/, '') +'>All</a> '
+' <a title="Show all pages from current to final" href='
+SetUrlTxt(s1, 'limit=1000').replace(/all&/,'').replace(/glp&/,'')
+'>Nexts</a> '
+' <a title="Link to last page ALWAYS. Use it for bookmark" href='
+SetUrlTxt(s1, 'glp').replace(/all&/,'') +'>Last</a> '
;
aTag.innerHTML = aTag.innerHTML +s;
return true;
} else {return false}
}

var TdTg1 = document.getElementsByTagName('td');
for (var i = 0; i<TdTg1.length; i++) {
if (AddPageLinks1(TdTg1[i])) break}
for (var i = TdTg1.length -1; i>=0; i--) {
if (AddPageLinks1(TdTg1[i])) break}
}

function getCookie(name) {
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
))
return matches ? decodeURIComponent(matches[1]) : undefined
}
function setCookie(name, value, props) {
props = props || {}
var exp = props.expires
if (typeof exp == "number" && exp) {
var d = new Date()
d.setTime(d.getTime() + exp*1000)
exp = props.expires = d
}
if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

value = encodeURIComponent(value)
var updatedCookie = name + "=" + value
for(var propName in props){
updatedCookie += "; " + propName
var propValue = props[propName]
if(propValue !== true){ updatedCookie += "=" + propValue }
}
document.cookie = updatedCookie
}
function deleteCookie(name) {setCookie(name, null, { expires: -1 })}

String.prototype.get = function(p){
return (match = this.match(new RegExp("[?|&]?" + p + "=([^&]*)"))) ? match[1] : false;}

function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling); }

function splitSrch(s){
a = [];
s.replace(/"([^"]*)"|[\S]+/g, function(w, p) {a.push(p||w)});
return a;
}

function PrsUsersList(aUserNicks) {
var s = aUserNicks.replace(/,+/g,",");
s = s.replace(/\s+/g," ");
s = s.replace(/[, ]$/g,"").replace(/^,/g,"");
s = s.replace(/,\s/g,",");
return s;
}

function SetUrlTxt(u, s) {
return ((u.indexOf('&' +s) < 0) && (u.indexOf('?' +s) < 0)) ?
u.replace(/[?](.*)/g, function(a, b) {return '?' +s +'&'+b}) : u;}

var isPAdding = false;
var CurFLoad = -1;
var CurForumNbm = window.location.search.get('forum');

if (IsAddForums) {
if ( (document.location.pathname.indexOf(SrchForum) > -1)
) {
var TrTag3 = document.getElementsByClassName('tit')
DTag1 = document.createElement("div");
DTag1.id = 'Div100';
var LoadList2 = getCookie(FrmsName +CurForumNbm);
if (LoadList2 == undefined) {LoadList2 = ''}
var FrmLoadList = PrsUsersList(LoadList2).split(Delim1);
DTag1.innerHTML = ''
+'<center>'
+'<div id="vote_status1"><br></div>'
+'Additional forums: <font id=FForums>' +LoadList2 +'</font>'
+' &nbsp; <input id=btnv1 value="Edit"'
+' onclick="EdFrmsLst()" type="button" />'
+'&nbsp; <font id="vote_status2">Place for server' +"'" +'s answer</font>'
+'</center>';
insertAfter(TrTag3[TrTag3.length -1].parentNode.parentNode.parentNode.parentNode, DTag1, TrTag3[TrTag3.length -1].parentNode.parentNode.parentNode);
document.getElementById('btnv1').addEventListener("click",
function() {EdFrmsLst()}, false);
}
}

function EdFrmsLst() {
var s = getCookie(FrmsName +CurForumNbm);
if (s == undefined) {s = ''}
if (s==null) {s='';}
s = prompt('Additional loader editor. Put forum number' +"-" +'s here Example: 13, 72, 75', s.replace(/^,/g,""));
if(s!=null){
FrmLoadListS = PrsUsersList(s);
setCookie(FrmsName +CurForumNbm, FrmLoadListS,{expires:CookDate1});
var FrmLoadList = PrsUsersList(FrmLoadListS).split(Delim1);
document.getElementById('FForums').innerHTML = s;
var FrmLoadedList = PrsUsersList(FrmLoaded).split(Delim1);
for (var j = 0; j < FrmLoadedList.length; j++) {
if (FrmLoadedList[j] == '') continue;
var Find1 = false;
for (var i = 0; i < FrmLoadList.length; i++) {
if (FrmLoadedList[j] == FrmLoadList[i]) {
Find1 = true;
break;
}
}
var FrTag1 = document.getElementById(AddForumS +FrmLoadedList[j]);
if (FrTag1 == null) continue;
if (Find1) {
FrTag1.style.display = "inline";
} else {
FrTag1.style.display = "none";
}
}
AddPage1();
}
};

function AddPage1() {
if (CurFLoad != -1) {return false}
var statusElem1 = document.getElementById('vote_status1')
var statusElem2 = document.getElementById('vote_status2')
Find1 = 0;
s = getCookie(FrmsName +CurForumNbm);
if (s == undefined) {s = ''}
var FrmLoadList = PrsUsersList(s).split(Delim1);
for (var j = 0; j < FrmLoadList.length; j++) {
if (FrmLoadList[j] == '') continue;
var tmp3 = document.getElementById(AddForumS +FrmLoadList[j]);
if (tmp3 == null) {
CurFLoad = FrmLoadList[j];
Find1 = 1;
break;
}
}

if (Find1 == 1)
{
var req = getXmlHttp()
req.onreadystatechange = function() {
if (req.readyState == 4) {
statusElem2.innerHTML = req.statusText
+' Forum:' +CurFLoad;
if(req.status == 200) {
if (document.getElementById(AddForumS +CurFLoad) != null) {
CurFLoad = -1;
return false;
}
var temp = document.createElement('div');
temp.innerHTML = req.responseText;
var TdTags1 = temp.getElementsByClassName("tit");
var NodeNew1 = document.createElement('div');
NodeNew1.id = AddForumS +CurFLoad;
FrmLoaded = FrmLoaded +',' +CurFLoad;
if (TdTags1.length >= 2) {
var TblTag1 = TdTags1[0].parentNode.parentNode.parentNode;
var TblTag2 = TdTags1[1].parentNode.parentNode.parentNode;
var TblTag3 = TdTags1[TdTags1.length-1].parentNode.parentNode.parentNode;
s1 = '' +'<br>'
+TblText1s +TblTag1.innerHTML +TblText1e
+TblText1s +TblTag2.innerHTML +TblText1e
+TblText1s +TblTag3.innerHTML +TblText1e ;
NodeNew1.innerHTML = s1;
} else {
NodeNew1.innerHTML = '' +'<br>' +
'Error! Forum ' +CurFLoad +' is empty';
}
statusElem1.parentNode.insertBefore(NodeNew1, statusElem1);
var tmp3 = document.getElementById(AddForumS +CurFLoad);
CurFLoad = -1;
AddPage1();
} else {
var NodeNew1 = document.createElement('div');
NodeNew1.id = AddForumS +CurFLoad;
NodeNew1.innerHTML = '' +'<br>' +
'Error! No response from Forum ' +CurFLoad +'.';
statusElem1.parentNode.insertBefore(NodeNew1, statusElem1);
var tmp3 = document.getElementById(AddForumS +CurFLoad);
CurFLoad = -1;
AddPage1();
}
}
}
req.open('GET', '/forum.cgi?forum=' +CurFLoad, true);
req.send(null);
statusElem2.innerHTML = 'Loading'
+' forum:' +CurFLoad;
} else {
statusElem2.innerHTML = 'All pages loaded.';
}
}

function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
xmlhttp.overrideMimeType('text/html');
}
return xmlhttp;
}

if (IsAddForums) {AddPage1()};

var Veche1 = new Array();
function CalcVeche(IgnS) {

function FindOrAdd1(aNick, aText) {
var Pt1 = -1;
for (var i = 0; i < Veche1.length ; i++) {
Ln1 = Veche1[i];
if (aText.toLowerCase() == Ln1[0].toLowerCase()) {
Pt1 = i;
break;
}
}
if (Pt1 == -1) {
var Line1 = new Array();
Line1[0] = aText;
Line1[1] = aNick;
Veche1[Veche1.length] = Line1;
} else {
var Line1 = Veche1[Pt1];
var Find1 = false;
for (var j = 1; j < Line1.length ; j++) {
if (Line1[j] == aNick) {
Find1 = true;
break;
}
}
if (!Find1) {
Line1[Line1.length] = aNick;
Veche1[Pt1] = Line1;
}
}
}

PTag1 = document.getElementById('P1Vote');
if ((PTag1 != null) && (PTag1.innerHTML != '')) {
PTag1.innerHTML = '';
} else {

Veche1 = [];
if (IgnS == undefined) {IgnS = ''}
var Ign = IgnS.split(Delim1);

var TbTag = document.getElementsByTagName('table');
for (var i = 0; i < TbTag.length ; i++) {
if (TbTag[i].className == "tb") {
var TrT = TbTag[i].getElementsByTagName('tr');
if (TrT.length == 0) continue;
var BTag = TbTag[i].getElementsByTagName('b');
if (BTag.length == 0) continue;
LiTag = TbTag[i].getElementsByTagName('li');
for (var j = 0; j < LiTag.length; j++) {
B2Tag = LiTag[j].getElementsByTagName('b');
if (B2Tag.length == 0) continue;
if (B2Tag[0] == '') continue;
FindOrAdd1(BTag[0].innerHTML, B2Tag[0].innerHTML);
}
}
}
var TrT = document.getElementsByTagName('tr');
for (var i = 0; i < TrT.length; i++) {
var BTag = TrT[i].getElementsByTagName('b');
if (BTag.length == 0) continue;
var TdTag = TrT[i].getElementsByTagName('td');
if (TdTag.length >= 3) {
if (TdTag[2].className=="tpc") {
LiTag = TrT[i].getElementsByTagName('li');
for (var j = 0; j < LiTag.length; j++) {
B2Tag = LiTag[j].getElementsByTagName('b');
if (B2Tag.length == 0) continue;
if (B2Tag[0] == '') continue;
FindOrAdd1(BTag[0].innerHTML, B2Tag[0].innerHTML);
}
}
}
}
if (Veche1.length == 0) {
alert('No votes.');
} else {
VoteCnt1 = 0;
for (var j = 1; j < Veche1.length; j++) {
if (VoteCnt1 < Veche1[j].length -1) {VoteCnt1 = Veche1[j].length -1}}
s2 = '';
for (var i = 0; i < Veche1.length ; i++) {
var s3 = '';
var s4 = '';
for (var j = 1; j < Veche1[i].length; j++) {
s4 = s4 +'&nbsp;';
s3 = s3 +Veche1[i][j];
if (j != Veche1[i].length-1) {s3 = s3 +', '}
}
s2 = s2 +'<tr bgcolor=#ffffff><td width=70%>' +Veche1[i][0]
+' ( ' +s3 +' ) ' +'</td>';
s2 = s2 +'<td nowrap=nowrap width=5% align=center>'
+(Veche1[i].length -1) +'</td>';
s2 = s2 +'<td nowrap=nowrap width=100><font Color=blue '
+'style="background-color:blue;">' +s4 +'</font></td>';
s2 = s2 +'</tr>'
}

var s1 = ''
+'<table class="dats" align=center bgcolor=#A0A0A0 border=0 cellpadding=3'
+' cellspacing=1 width=95%><tbody><tr align=center bgcolor=#dddddd>'
+'<td width=70%><b>Question and answer ( voters )</b></td>'
+'<td nowrap=nowrap width=5%><b>Vote</b></td>'
+'<td nowrap=nowrap width=100><b>Scale</b></td>'
+'</tr>'
+s2
+'</tbody></table>'
+''
;

if (PTag1 == null) {
var TbTag1 = document.getElementsByTagName('table');
for (var j = 0; j < TbTag1.length; j++) {
if (TbTag1[j].className == 'tb') {
PTag1 = document.createElement('p');
PTag1.id = 'P1Vote';
break;
}
}
PTag1.innerHTML = s1;
TbTag1[j].parentNode.insertBefore(PTag1, TbTag1[j]);
} else {
PTag1.innerHTML = s1;
}
}
}
}

function InsertSel1() {
var LastFindUserName = '';
function FindPrnt1(aNode) {
var PrNd1 = aNode.parentNode;
if (PrNd1.tagName == undefined) {
return PrNd1;
}
if (PrNd1.tagName.toLowerCase() == 'table') {
if (PrNd1.className == "tb") {
var TrT = PrNd1.getElementsByTagName('tr');
if (TrT.length != 0) {
var BTag = PrNd1.getElementsByTagName('b');
if (BTag.length != 0) {
LastFindUserName = BTag[0].innerHTML;
return PrNd1;
}
}
}
}
return FindPrnt1(PrNd1);
}

function FindRef1(TrNode) {
var ATg1 = TrNode.getElementsByTagName('a');
for (var i = ATg1.length -1; i>=0; i--){
if (ATg1[i].href.indexOf('topic.cgi') >= 0) {
var s1 = '';
if ((LastFindUserName != '') && (ATg1[i].href != '')
&& (ATg1[i +1].innerHTML != ''))
{
s1 = ''
+'[user]' +LastFindUserName +'[/user] '
+'(.href +']'
+ATg1[i +1].innerHTML
+'
)'
;
return s1;
}
}
}
return '';
}

var Nd = FindPrnt1(window.getSelection().getRangeAt(0).startContainer.parentNode);
if (Nd.tagName == undefined) { alert('Text is undefined.')
} else {
var s1 = FindRef1(Nd);
if (s1 == '') { alert('Wrong link or user.')
} else {
var s2 = window.getSelection().toString();
if (s2 == '') { alert('Empty selection.')
} else {
var s2 = '
Цитата:
' +s2 +'
';
TATag1 = document.getElementById('post');
if (TATag1 == null) { alert('Textarea is undefined.')
} else {
TATag1.value = TATag1.value.substr(0,TATag1.selectionStart)
+'\n' +s1 +s2 +'\n\n'
+TATag1.value.substr(TATag1.selectionEnd);
}
}
}
}
}

})();
[/more]

Ссылка для скачивания файла: http://ifolder.ru/16288313


Jans (09:11 05-02-2010)
Цитата:
единственное, о чем хотелось бы попросить, сместить объекты согласно скрина, эстетики для


У меня вот так выглядит:

Зачем вытаскивать длинную строчку в середину?


bredonosec (11:23 05-02-2010)
Цитата:
а без наличия поста не сработать никак?


Ну, а как? Скрипт просто читает страничку, как все люди читают, подсчитывает кто за что высказался, подводит статистику и ставит её вверх странички. Вот и всё.

Как ещё иначе это можно сделать?


bredonosec (11:23 05-02-2010)
Цитата:

ну, чтоб ветки не засорять страницами из сплошь "мне полезен" в отношении одного из ранее бывших скриптов..


Можно использовать цвет фона или тусклый цвет.

Бесцветный текст (виден при выделении):

Цитата:
Бесцветный текст


Тусклый текст:

Цитата:
Тусклый текст


Но проголосовать несколько раз за одно и тоже не получится.


JekaKot (14:28 06-02-2010)
Цитата:
Скрипто-писатели, возможно ли написание скрипта

1. скрывающего шапку при просмотре темы?


Шапка закрывается как обычный пост нажатием на [-].


JekaKot (14:28 06-02-2010)
Цитата:
2. изменить количество постов на странице (ну или грузить n-ое количество страниц сразу)


Для этого предназначена кнопка Nexts, там где страницы. Но она почему-то не работает.

Вот описание url: http://forum.ru-board.com/topic.cgi?forum=13&topic=1534&start=80
Параметр limits=500, означает, что выводится текущая страница, только не в 20 постингов, а в 500 последующих. Но почему-то это не работает.

Если кто-нибудь сумеет объяснить почему, то могу поправить в скрипте, чтобы работало.


JekaKot (14:28 06-02-2010)
Цитата:
3. отображать только посты одного автора по всей теме?


Нажать на "Find".


klarus (18:40 06-02-2010)
Цитата:
+1 Большое спасибо!


Пожалуйста.


carbonsky (21:32 06-02-2010)
Цитата:
Хотел узнать: как поменять цвет, которым подсвечиваются френды? Салатовый не нравится почему то.


Описано в первом постинге на первой странице.


LEX1 (13:58 30-01-2010)
Цитата:
window.localStorage.getItem(name)


Можно ли получить полный список элементов в localStorage? Или только те, чьи имена знаешь?
Автор: vv07
Дата сообщения: 07.02.2010 02:16

Цитата:
klarus

Цитата:
попал сюда, отслеживая профиль одного тролля

Тролль искал здесь защиту от собратьев? Еще раз можно высказать благодарность автору скрипта, даже тролли им пользуются по видимому.

Как то не логично звучит.klarus отслеживает чей то профиль,преследуя его на форуме.Выходит что тролль не человек,а klarus,преследующий этого человека,иначе как обьяснить данное поведение?
Автор: WildGoblin
Дата сообщения: 07.02.2010 23:19
Ke (01:17 07-02-2010)
Цитата:
Добавил кнопку Quote

Отличное нововведение
Автор: LEX1
Дата сообщения: 08.02.2010 01:38
Ke 00:17 07-02-2010
Цитата:
Можно ли получить полный список элементов в localStorage?


Код: [no]javascript:var key, obj = window.localStorage; for(key in obj){if(obj.hasOwnProperty(key))alert(key)}[/no]
Автор: WildGoblin
Дата сообщения: 08.02.2010 15:36
Ke
А можно сделать что бы голосование работало под тегом "#"? Например:
[no][/no]
Автор: ukinto
Дата сообщения: 08.02.2010 16:00
Я пользователь и не силен в программировании, поэтому прошу Вас снисходительно отнестись к вопросу такого порядка, возможна ли работа данного скрипта на других форумах?
Было бы замечательно "прикрутить" эту неплохую идею к ним ... Или это требует разработки скрипта для каждого индивидуально ?
Автор: vv07
Дата сообщения: 08.02.2010 16:05
ukinto

Цитата:
требует разработки скрипта для каждого индивидуально

Автор: NPC
Дата сообщения: 08.02.2010 16:34
ukinto

Цитата:
поэтому прошу Вас снисходительно отнестись к вопросу такого порядка, возможна ли работа данного скрипта на других форумах?

думаете тамошние модераторы дадут свой форум ковырять скриптами? и здесь вопрос до сих пор открытый
Автор: Runtime_err0r
Дата сообщения: 08.02.2010 16:55
NPC

Цитата:
думаете тамошние модераторы дадут свой форум ковырять скриптами?

Скрипты работают на стороне клиента, если ты не в курсе


Добавлено:
ukinto

Цитата:
Я пользователь и не силен в программировании, поэтому прошу Вас снисходительно отнестись к вопросу такого порядка, возможна ли работа данного скрипта на других форумах?

А смысл ? Большинство форумов работают на движках Invision Power Board или vBulletin, а там все необходимые (по крайней мере мне ) функции уже есть в самом движке
Автор: vv07
Дата сообщения: 08.02.2010 17:00
Runtime_err0r
Он не в курсе.Он всего лишь тролль.Неужели вы этого не поняли?
NPC
Автор: NPC
Дата сообщения: 08.02.2010 17:06
vv07
п. 2.12. главы VIII Соглашения по использованию
п. 2.13. главы VIII Соглашения по использованию
не надо меня тут опорачивать и отвечать за меня, прошу отредактировать своё сообщение, кто кричит на каждом шагу форумчанину тролль, сами знаете кто...
Автор: Runtime_err0r
Дата сообщения: 08.02.2010 17:07
vv07

Цитата:
Он не в курсе.Он всего лишь тролль. Неужели вы этого не поняли?

Сам вижу, что тролль

NPC
Докажи обратное, объясни нам, что ты понимаешь под термином "ковыряние форума скриптами"
Автор: NPC
Дата сообщения: 08.02.2010 17:29
Runtime_err0r нарушение целостности форума пользователем
Автор: WildGoblin
Дата сообщения: 08.02.2010 17:37

Цитата:
думаете тамошние модераторы дадут свой форум ковырять скриптами? и здесь вопрос до сих пор открытый

Какой жЫрнинький тролльчёнко!
Автор: NPC
Дата сообщения: 08.02.2010 17:52

Цитата:
Какой жЫрнинький тролльчёнко!

не увлекайтесь, вот что за этим последует
http://forum.ru-board.com/topic.cgi?forum=2&topic=3990&start=2040#18
Автор: WildGoblin
Дата сообщения: 08.02.2010 18:15
NPC

Цитата:
не увлекайтесь, вот что за этим последует
Я уже нажал на этом сообщении...
Автор: NPC
Дата сообщения: 08.02.2010 18:40
WildGoblin и что? самовольность разрешается, если тебя обижают, тем более модераторы редко за это дают подзатыльник, если только может 3xp0, но сейчас тоже уже реже выписывает, сомнительное нарушение и каждый понимает по своему
а вот орать здесь "ты тролль", это уже оскорбление чистой воды
Автор: C0USIN
Дата сообщения: 09.02.2010 07:33

Цитата:
нарушение целостности форума пользователем

И еще использование запрещенных браузеров для просмотра форума

Страницы: 12345678910111213141516171819

Предыдущая тема: Варезник - иногда/совсем немодерируемый форум?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.