Testes Alternativt sorteringsskript

Status
Stengt for ytterligere svar.

DeletedUser

Guest
Dette er et alternativt sorteringsskript. Det er enten et skript som kopierer funksjonen til et eldre skript, eller et veldig likt et. Jeg er ikke helt sikker. Uansett... På kommando- og innkommendeoversikten vil dette skriptet sortere avhengig av; Når det ble sendt, spilleren som sendte sitt navn, ankomststed og angrepsnavn.

Med andre ord, mye av det samme som det nyere ( eller eldre? Hmm... ) sorteringsskriptet, men kun begrenset til to oversikter. Fordelen er at dette sorteringsskriptet ikke er avhengig av en ekstern server. Så hvis den serveren som har skriptet på siden er nede, så kan man allikevel sortere innkommende. Nå er det vel avhengig av at vanlige spillere har giddet å fikse en server.

[spoil]
Kode:
javascript: function main() {    newRows.sort(sortBy);    for (i = 0; i < newRows.length; i++) {        table.rows[i + 1].innerHTML = newRows[i].innerHTML;    }}function sortSent(a, b) {    aid = getParam(a.cells[0].getElementsByTagName('a')[0].href, 'id');    bid = getParam(b.cells[0].getElementsByTagName('a')[0].href, 'id');    if (asc) return aid - bid;    else {        return bid - aid;    }}function getParam(url, pName) {    var start = url.indexOf(pName + "=") + pName.length + 1;    if (pName.length == start) return null;    var end = url.indexOf('&', start);    if (end > 0) return url.substring(start, end);    else {        return url.substring(start);    }    return null;}function sortOrigin(a, b) {    valA = a.cells[2].childNodes[0].innerHTML.toLowerCase();    valB = b.cells[2].childNodes[0].innerHTML.toLowerCase();    r = sortString(valA, valB);    if (r == 0) r = sortArrival(a, b);    return r;}function sortAttackName(a, b) {    valA = a.getElementsByTagName('span')[1].innerHTML;    valB = b.getElementsByTagName('span')[1].innerHTML;    r = sortString(valA, valB);    if (r == 0) r = sortArrival(a, b);    return r;}function sortArrival(a, b) {    valA = a.cells[4].childNodes[0].innerHTML.split(':');    valB = b.cells[4].childNodes[0].innerHTML.split(':');    r = 0;    for (i = 0; i < 3 && r == 0; i++) {        r = valA[i] - valB[i];    }    if (!asc) r *= -1;    if (r == 0) r = sortSent(a, b);    return r;}function sortString(a, b) {    r = new Number(a > b);    if (r == 0) r--;    if (valA == valB) r = 0;    if (!asc) r = r * -1;    return r;}var doc = (window.frames.length > 0) ? window.main.document : window.document;if (typeof (table) == 'undefined') var table = null;if (typeof (asc) == 'undefined') var asc = true;if (typeof (sortBy) == 'undefined') var sortBy = sortArrival;if (typeof (newRows) == 'undefined') var newRows = null;if (!table) {    ths = doc.getElementsByTagName('th');    for (i = 0; i < ths.length && !table; i++) {        if (ths[i].innerHTML.match(/Command/)) { table = ths[i].parentNode.parentNode; }    }    if (table) {        newRows = [];        rows = table.rows;        for (i = 1; i < rows.length - 1; i++) {            newRows.push(rows[i].cloneNode(true));        }        menu = doc.createElement('table');        menu.className = 'vis';        menu.insertRow(0);        row = menu.rows[0];        title = doc.createElement('th');        title.innerHTML = 'Order By:';        menu.rows[0].appendChild(title);        row.insertCell(1);        row.cells[1].innerHTML = '<label onclick=\'asc=true\'><input type=radio name=order checked=true />Ascending </label>';        row.insertCell(2);        row.cells[2].innerHTML = '<label onclick=\'asc=false\'/><input type=radio name=order />Decending </label>';        menu.insertRow(1);        row = menu.rows[1];        row.insertCell(0);        row.cells[0].innerHTML = '<th>Sort By:</th>';        row.insertCell(1);        row.cells[1].innerHTML = '<label onclick=\'sortBy=sortArrival\'><input type=radio name=sort checked=true />Arrival Time </label>';        row.insertCell(2);        row.cells[2].innerHTML = '<label onclick=\'sortBy=sortSent\'/><input type=radio name=sort />Sent Time </label>';        row.insertCell(3);        row.cells[3].innerHTML = '<label onclick=\'sortBy=sortOrigin\'/><input type=radio name=sort />Player Name </label>';        row.insertCell(4);        row.cells[4].innerHTML = '<label onclick=\'sortBy=sortAttackName\'/><input type=radio name=sort />Attack Name </label>';        row.insertCell(5);        row.cells[5].innerHTML = '<label onclick=\'sortBy=sortDestination\'/><input type=radio name=sort />Destination </label>';        menu.insertRow(2);        menu.rows[2].innerHTML = '<td><input type="button" value="Sort" onClick="main();void(0);"/></td>';        table.parentNode.parentNode.insertBefore(menu, table.parentNode);        table.parentNode.parentNode.insertBefore(doc.createElement('br'), table.parentNode);    } else {        alert('the script could not find the appropriate table.\nMake sure you\'re on the right page.');    }}void (0);
[/spoil]
 
Sist redigert av en moderator:

DeletedUser

Guest
Med andre ord. Ansvaret er gått fra store proffesjonelle firmaer til en fjortis i ytre Kautokeino?
 

DeletedUser

Guest
Med andre ord. Ansvaret er gått fra store proffesjonelle firmaer til en fjortis i ytre Kautokeino?

Jeg er ikke helt sikker på hva du mener, så jeg prøver bare å forklare.

De fleste skriptene som brukes på TW kjøres kun i brukeren sin nettleser. De er ikke avhengig av ekstern hjelp. Med noen få unntak, som for eksempel det vanlige sorteringsskriptet og noen varianter av koordinatskript. De unntakene sender informasjon til en ekstern server, og så sender den eksterne serveren informasjonen tilbake. Det er derfor det av og til er litt time-lag på for eksempel koordinatskript, fra du trykker på skriptet til det setter inn koordinatene.

Et problem med de skriptene som er knyttet til en ekstern server er at hvis den serveren er nede, så virker ikke skriptet. For eksempel når Kristure hadde sorteringsskriptet på sin server så var det mer nede enn oppe. Men nå er det andre spillere, som er gjerne er betydelig mer proffe enn noen i teamet når det kommer til skript, som har lagt det ut på sin server. Det er derfor man kan finne forskjellige nettadresser i kodene til skript som utfører samme funksjon.

Dette skriptet jeg har lagt ut her har, som de fleste andre skript knyttet til TW, ingen forbindelser til det eksterne. Med andre ord, det kjøres kun i nettleseren din. Man slipper å være avhengig av en ekstern server.
 

sjefen

Litt aktiv?
Reaksjonspoeng
8
Flott!

Da kan jeg snart fjerne scriptet som jeg har lagt ut på en server. Kanskje jeg skal peke til denne tråden noen uker før jeg fjerner det.
 

DeletedUser

Guest
Nå har det jo kommet en del innebygde sorteringsegenskaper på TW, så kombinert med dette skriptet tror jeg de fleste mulighetene fra det eksterne sorteringsskriptet er dekket. Et unntak er at dette her sorteringsskriptet ikke hvis kommando ID'ene når den sorterer innkommende/kommandoer.
 

sjefen

Litt aktiv?
Reaksjonspoeng
8
Nå har det jo kommet en del innebygde sorteringsegenskaper på TW, så kombinert med dette skriptet tror jeg de fleste mulighetene fra det eksterne sorteringsskriptet er dekket. Et unntak er at dette her sorteringsskriptet ikke hvis kommando ID'ene når den sorterer innkommende/kommandoer.

Vel, da får det gamle leve videre. Noe av det viktigste med det gamle er jo kommando ID'ene.
 

DeletedUser

Guest
Vel, da får det gamle leve videre. Noe av det viktigste med det gamle er jo kommando ID'ene.

*Ikke viser kommando ID'ene. Ble litt feil der :eek: Det benytter seg jo av den samme greia for å sortere dem etter når de ble sendt.
 

DeletedUser

Guest
Er bare "arrival time" og "sent time" som funkerer å sortere..:confused:

Nei. Jeg testet akkurat på innkommendeoversikten, og det sorterer også på angrepsnavn og navn på destinasjonen. Antakeligvis også angripernavnet, men det fikk jeg ikke testet.
 

DeletedUser

Guest
Får ikke dette scriptet til å fungere. Fungerer det hos andre? Prøver på V12 med Opera som nettleser.
 

DeletedUser

Guest
Mulig dette har blitt lagt ut før, da jeg ikke har oversikt over alle trådene her på forumet - men dette scriptet skal fungere med attack-id sortering:

[SPOIL]
Kode:
javascript:var debugEnabled=true;var branch='http://dl.dropbox.com/u/25377948/twscripts/';(window.main||self).$.getScript(branch+'jquery.tw.sort.js',function(){$.twSortOverview(branch,debugEnabled);});void(0);
[/SPOIL]
 
Status
Stengt for ytterligere svar.
Topp