Сортировка списка клана
当前为
// ==UserScript==
// @name LNK_clanSort
// @author NemoMan
// @namespace LNK
// @description Сортировка списка клана
// @include *heroeswm.ru/clan_info.php*
// @version 1.0
// @grant none
// ==/UserScript==
(function() {
'use strict';
var table, sortedRows, elems, paramTbl;
var i;
var iventCount = false;
function compareIvent(rowA, rowB) {
var a = rowA.cells[5].innerHTML.replace(/ *\([^)]*\) */g, "").replace(/[\D]+/g,'');
var b = rowB.cells[5].innerHTML.replace(/ *\([^)]*\) */g, "").replace(/[\D]+/g,'');
//rowB.cells[0].innerHTML = b;
return b-a ;
}
function compareOrder(rowA, rowB) {
var a = rowA.cells[0].innerHTML.replace(/[\D]+/g,'');
var b = rowB.cells[0].innerHTML.replace(/[\D]+/g,'');
//rowB.cells[0].innerHTML = b;
return a-b ;
}
function sortIvent() {
sortedRows = Array.from(table.rows)
//.slice(1)
.sort(compareIvent);
table.tBodies[0].append(...sortedRows);
elems = table.rows;
if (!iventCount) {
for (i = 0; i < elems.length; i++) {
elems[i].cells[5].innerHTML = elems[i].cells[5].innerHTML + ' (' + (i+1) + ')';
elems[i].cells[5].width = '90px';
}
iventCount = true;
}
}
function sortOrder() {
sortedRows = Array.from(table.rows)
.sort(compareOrder);
table.tBodies[0].append(...sortedRows);
}
if (location.href.indexOf('clan_info.php') != -1) { // страница инфы клана со списком
var elements = document.querySelectorAll("table");
for ( i = 0; i < elements.length; i++) {
if (elements[i].rows.length > 50) {
//alert(elements[i].rows.length);
table = elements[i];
break;
}
}
paramTbl = document.createElement('table');
paramTbl.innerHTML =
'<tbody> '+
'<tr> '+
'<td align="left"> <input type="button" id="butSortOrder" value="Сортировать по порядку" /></td>'+
'<td align="right"> <input type="button" id="butSortIvent" value="Сортировать по очкам в ивенте" /></td>'+
'</tr> '+
'</tbody>';
paramTbl.id="paramTbl";
paramTbl.align="left";
paramTbl.width="100%";
paramTbl.style.borderCollapse = 'collapse';
paramTbl.setAttribute('border',2);
paramTbl.setAttribute('cellpadding',4);
//document.body.append(paramTbl);
table.before(paramTbl);
document.getElementById('butSortIvent').onclick = sortIvent;
document.getElementById('butSortOrder').onclick = sortOrder;
}
})();