diff --git a/config.php b/config.php index 8865906..4d807dc 100644 --- a/config.php +++ b/config.php @@ -42,7 +42,7 @@ function get($id) ## defaultdate: Current php time-zone of server. ##################################################################################################*/ "CheckVersion" => true, - "version" => "10", + "version" => "11", "checkdiff" => 2, "defaultdate" => date_default_timezone_set('Europe/Moscow')); diff --git a/lib/create.php b/lib/create.php index fe3e83b..7764eab 100644 --- a/lib/create.php +++ b/lib/create.php @@ -250,12 +250,16 @@ public function LoadView($opt) { $cfg = new config; $sql = new sql; + global $user; $u=0; echo ''; diff --git a/lib/html.php b/lib/html.php index 8fd5990..1661010 100644 --- a/lib/html.php +++ b/lib/html.php @@ -31,41 +31,41 @@ public function send() Персонаж: - - - - - Местность: - - + - Зона: + Тип: - + - Тип: + Местность: - + + Зона: + + + + + Название: - + Wowhead ссылка: -
+
@@ -176,50 +176,49 @@ public function detail($int)
Сейчас так:
А должно быть так:
Пояснение:
- + - + - - - - - + - + + + + + - +
Персонаж: - -
-
'; +
'; $main->LoadView($opt);echo ' -
'; diff --git a/lib/main.js b/lib/main.js index a8ea27f..44a3a7b 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,300 +1,381 @@ var tr_select = false; var detail_view = false; +var m_viewdiv = 0; +var m_nowview = -1; function showhide0() { - if(document.getElementById("hide0").style.display == "none") - document.getElementById("hide0").style.display = "block"; - else - document.getElementById("hide0").style.display = "none"; + if(document.getElementById("hide0").style.display == "none") + document.getElementById("hide0").style.display = "block"; + else + document.getElementById("hide0").style.display = "none"; } + function streamimg(m,pix) { - setTimeout(function() - { - document.getElementById("stream"+m).style.width = document.getElementById("stream"+m).offsetWidth + 1; - if(document.getElementById("stream"+m).offsetWidth < pix) - streamimg(m,pix); - },20); + setTimeout(function() + { + document.getElementById("stream"+m).style.width = document.getElementById("stream"+m).offsetWidth + 1; + if(document.getElementById("stream"+m).offsetWidth < pix) + streamimg(m,pix); + },20); } function saveset() { -var title = document.getElementById("name").value; -var prioroty = document.getElementById("priority").options[document.getElementById("priority").selectedIndex].value; -var status = document.getElementById("status").options[document.getElementById("status").selectedIndex].value; -var progress = document.getElementById("progress").options[document.getElementById("progress").selectedIndex].value; -var listid = document.getElementById("listid").innerHTML; -var box = document.getElementById("delete"); -var todel = 0; -if(title != "" || box.checked) -{ - if(box.checked) - { - document.getElementById("spansave").innerHTML = "Удаление..."; - todel = 1; - } - else - document.getElementById("spansave").innerHTML = "Сохранение..."; - $.ajax({ - type: "POST", - data: "lis="+listid+"&del="+todel+"&tit="+title+"&pri="+prioroty+"&sta="+status+"&pro="+progress, - url: "saveset.php", - cache: false, - success: function(html) + var title = document.getElementById("name").value; + var prioroty = document.getElementById("priority").options[document.getElementById("priority").selectedIndex].value; + var status = document.getElementById("status").options[document.getElementById("status").selectedIndex].value; + var progress = document.getElementById("progress").options[document.getElementById("progress").selectedIndex].value; + var listid = document.getElementById("listid").innerHTML; + var box = document.getElementById("delete"); + var todel = 0; + + if(title != "" || box.checked) + { + if(box.checked) { - window.location.reload(); + document.getElementById("spansave").innerHTML = "Удаление..."; + todel = 1; } - }); -} -else - alert('Необходимо заполнить поле "Заголовок"!'); + else + document.getElementById("spansave").innerHTML = "Сохранение..."; + + $.ajax({ + type: "POST", + data: "lis="+listid+"&del="+todel+"&tit="+title+"&pri="+prioroty+"&sta="+status+"&pro="+progress, + url: "saveset.php", + cache: false, + success: function(html) + { + window.location.reload(); + } + }); + } + else + alert('Необходимо заполнить поле "Заголовок"!'); } + function todelete(status) { - status == 1 ? document.getElementById("spansave").innerHTML = "Удалить" : document.getElementById("spansave").innerHTML = "Сохранить"; + status == 1 ? document.getElementById("spansave").innerHTML = "Удалить" : document.getElementById("spansave").innerHTML = "Сохранить"; } + function showauth() { - document.getElementById("clickauth").style.display = "none"; - document.getElementById("placeauth").style.display = "block"; + document.getElementById("clickauth").style.display = "none"; + document.getElementById("placeauth").style.display = "block"; } function checklogout() { - document.getElementById("userpanel").style.display = "none"; - document.getElementById("checklogout").style.display = "block"; + document.getElementById("userpanel").style.display = "none"; + document.getElementById("checklogout").style.display = "block"; } function logoutcancel() { - document.getElementById("checklogout").style.display = "none"; - document.getElementById("userpanel").style.display = "block"; + document.getElementById("checklogout").style.display = "none"; + document.getElementById("userpanel").style.display = "block"; } function ChangeZones(id) { - var zn = document.getElementById("zone"); - zn.length = 0; - var param = map[id].split('*'); - var i=0; - var opt; - zn.options[zn.options.length] = new Option("--", "", true, true); - zn.options[zn.options.length-1].setAttribute("DISABLED", true); - do - { - opt = param[i].split('^'); - zn.options[zn.options.length] = new Option(opt[1], opt[0]); - i++; - }while(param[i]); + var zn = document.getElementById("zone"); + zn.length = 0; + var param = map[id].split('*'); + var i=0; + var opt; + zn.options[zn.options.length] = new Option("--", "", true, true); + zn.options[zn.options.length-1].setAttribute("DISABLED", true); + + do + { + opt = param[i].split('^'); + zn.options[zn.options.length] = new Option(opt[1], opt[0]); + i++; + }while(param[i]); } function send() { - var i=0; - var sql = ""; + var i=0; + var sql = ""; - var area1 = document.getElementById("area1").value; - var area2 = document.getElementById("area2").value; - var area3 = document.getElementById("area3").value; - var area4 = document.getElementById("area4").value; - var area5 = document.getElementById("userid").innerHTML; + var area1 = document.getElementById("area1").value; + var area2 = document.getElementById("area2").value; + var area3 = document.getElementById("area3").value; + var area4 = document.getElementById("area4").value; + var area5 = document.getElementById("userid").innerHTML; - while(document.getElementById("save"+i)) - { - var list = document.getElementById("save"+i).innerHTML; - var param = list.split('^'); - var player = document.getElementById("player"); - var map = document.getElementById("map"); - var vplayer = player.options[param[0]].value; - var vmap = map.options[param[1]].value; - sql = sql + vplayer+"^"+vmap+"^"+param[2]+"^"+param[3]+"^"+param[4]+"^"+param[5]+"*"; - i++; - } - if(sql && (area4 != '' && area3 != '' && area2 != '' && area1 != '')) - { - document.getElementById("ajaximg").style.visibility = "visible"; - $.ajax({ - type: "POST", - data: "a1="+area1+"&a2="+area2+"&a3="+area3+"&a4="+area4+"&a5="+area5+"&sql="+sql, - url: "send.php", - cache: false, - success: function(html) - { - document.getElementById("ajaximg").style.visibility = "hidden"; - if(html != "1") - alert("Ошибка! "+html); + while(document.getElementById("save"+i)) + { + var list = document.getElementById("save"+i).innerHTML; + var param = list.split('^'); + var player = document.getElementById("player"); + var map = document.getElementById("map"); + var method = param[0]; + var vplayer = player.options[param[1]].value; + var vmap = map.options[param[3]].value; + sql = sql + method+"^"+vplayer+"^"+param[2]+"^"+vmap+"^"+param[4]+"^"+param[5]+"^"+param[6]+"*"; + i++; + } + + if(sql && (area4 != '' && area3 != '' && area2 != '' && area1 != '')) + { + document.getElementById("ajaximg").style.visibility = "visible"; + $.ajax({ + type: "POST", + data: "a1="+area1+"&a2="+area2+"&a3="+area3+"&a4="+area4+"&a5="+area5+"&sql="+sql, + url: "send.php", + cache: false, + success: function(html) + { + document.getElementById("ajaximg").style.visibility = "hidden"; + if(html != "1") + alert("Ошибка! "+html); + else + window.location.href="index.php?a=list&sort=1&sortto=desc&last=1"; + } + }); + } + else + alert('Необходимо заполнить все поля!'); +} + +function next(id) +{ + switch(id) + { + case 0: + close("all"); + for(var i=2;i<6;i++) + clear(i); + document.getElementById("var1").style.display = ""; + break; + + case 1: + var val = document.getElementById("type").options[document.getElementById("type").selectedIndex].value; + if(val == 2 || val == 4 || val == 5) + { + for(var i=2;i<7;i++) + { + if(i<6)clear(i); + close(i); + } + document.getElementById("var2").style.display = ""; + } else - window.location.href="index.php?a=list&sort=1&sortto=desc&last=1"; - } - }); - } - else - alert('Необходимо заполнить все поля!'); + { + document.getElementById("var2").style.display = "none"; + document.getElementById("var3").style.display = "none"; + for(var i=4;i<7;i++) + document.getElementById("var"+i).style.display = ""; + } + break; + + case 2: + for(var i=3;i<7;i++) + { + if(i<6)clear(i); + close(i); + } + document.getElementById("var3").style.display = ""; + break; + + case 3: + for(var i=4;i<7;i++) + document.getElementById("var"+i).style.display = ""; + break; + } } -function menu(i) + +function open(t) { - if(i == "show") - { - if(document.getElementById("var")) - document.getElementById("var").style.display = ""; - for(var j=0;j<6;j++) - document.getElementById("var"+j).style.display = ""; - } - else - { - for(var j=0;j<6;j++) - { - if(document.getElementById("var")) - document.getElementById("var").style.display = "none"; - if(j > i) - { - document.getElementById("var"+j).style.display = "none"; - clear(j); - } - } - if(i == 3) - { - for(var j=3;j<6;j++) - { - document.getElementById("var"+j).style.display = ""; - } - } - else - { - clear(j); - document.getElementById("var"+i).style.display = ""; - } - } + for(var i=1;i<7;i++) + if(t == (t == "all" ? t : i)) + document.getElementById("var"+i).style.display = ""; } -var m_viewdiv = 0; -var m_nowview = -1; +function close(t) +{ + for(var i=1;i<7;i++) + if(t == (t == "all" ? t : i)) + document.getElementById("var"+i).style.display = "none"; +} function clear(t) { - if(t == "all") - { - if(document.getElementById("player")) - { - document.getElementById("player").selectedIndex = 0; - document.getElementById("map").selectedIndex = 0; - document.getElementById("zone").selectedIndex = 0; - document.getElementById("type").selectedIndex = 0; - document.getElementById("name").value = ""; - document.getElementById("db").value = ""; - } - } - else - { - if(t == 0)document.getElementById("player").selectedIndex = 0; - if(t == 1)document.getElementById("map").selectedIndex = 0; - if(t == 2)document.getElementById("zone").selectedIndex = 0; - if(t == 3)document.getElementById("type").selectedIndex = 0; - if(t == 4)document.getElementById("name").value = ""; - if(t == 5)document.getElementById("db").value = ""; - } + if(t == "all") + { + document.getElementById("player").selectedIndex = 0; + document.getElementById("type").selectedIndex = 0; + document.getElementById("map").selectedIndex = 0; + document.getElementById("zone").selectedIndex = 0; + document.getElementById("name").value = ""; + document.getElementById("db").value = ""; + } + else + { + if(t == 0)document.getElementById("player").selectedIndex = 0; + if(t == 1)document.getElementById("type").selectedIndex = 0; + if(t == 2)document.getElementById("map").selectedIndex = 0; + if(t == 3)document.getElementById("zone").selectedIndex = 0; + if(t == 4)document.getElementById("name").value = ""; + if(t == 5)document.getElementById("db").value = ""; + } } + function GetNewId(name) { - var temp = 0; - while(1) - { - if(document.getElementById(name+temp)) - temp++; - else - return temp; - } + var temp = 0; + while(1) + { + if(document.getElementById(name+temp)) + temp++; + else + return temp; + } } -function savelist(player,map,zone,type,name,db) + +function savelist(method,player,type,map,zone,name,db) { - var tag = document.createElement("div"); - tag.id = "save"+GetNewId("save"); - tag.innerHTML = player+"^"+map+"^"+zone+"^"+type+"^"+name+"^"+db; - document.getElementById("saveblock").appendChild(tag); + var tag = document.createElement("div"); + tag.id = "save"+GetNewId("save"); + tag.innerHTML = method+"^"+player+"^"+type+"^"+map+"^"+zone+"^"+name+"^"+db; + document.getElementById("saveblock").appendChild(tag); } + function tolink() { - if(m_viewdiv == 1) - { - document.getElementById("retype").innerHTML = "Добавить"; - m_viewdiv = 0; - changestatus(2); - menu(-1); - } - else if(document.getElementById("name").value != '' && document.getElementById("db").value != '') - { - var selPlayer = document.getElementById("player"); - var selMap = document.getElementById("map"); - var selZone = document.getElementById("zone"); - var selType = document.getElementById("type"); - var selName = document.getElementById("name"); - var selDb = document.getElementById("db"); - var player = selPlayer.options[selPlayer.selectedIndex].text; - var map = selMap.options[selMap.selectedIndex].text; - var zone = selZone.options[selZone.selectedIndex].value; - var type = selType.options[selType.selectedIndex].value; - var name = selName.value; - var db = selDb.value; - var pLink = document.getElementById("link").innerHTML; - var newid = GetNewId("save"); - document.getElementById("link").innerHTML = pLink+"
["+player+"]"+" "+name+"
"; - savelist(selPlayer.selectedIndex,selMap.selectedIndex,selZone.selectedIndex,selType.selectedIndex,name,db); - menu(-1); - } - else - { - alert('Необходимо заполнить все поля!'); - } + if(m_viewdiv == 1) + { + document.getElementById("retype").innerHTML = "Добавить"; + m_viewdiv = 0; + changestatus(2); + clear("all"); + close("all"); + } + else if(document.getElementById("name").value != '' && document.getElementById("db").value != '') + { + var selPlayer = document.getElementById("player"); + var selType = document.getElementById("type"); + var selName = document.getElementById("name"); + var selDb = document.getElementById("db"); + var map = -1; + var zone = -1; + + if(document.getElementById("var2").style.display != "none") + { + var selMap = document.getElementById("map"); + var map = selMap.options[selMap.selectedIndex].text; + } + if(document.getElementById("var3").style.display != "none") + { + var selZone = document.getElementById("zone"); + var zone = selZone.options[selZone.selectedIndex].value; + } + + var player = selPlayer.options[selPlayer.selectedIndex].text; + var type = selType.options[selType.selectedIndex].value; + var name = selName.value; + var db = selDb.value; + method = 1; + + if(type == 2 || type == 4 || type == 5) + { + if(map == -1 || zone == -1) + { + alert('Необходимо заполнить все поля!'); + return; + } + else + method = 2; + } + var pLink = document.getElementById("link").innerHTML; + var newid = GetNewId("save"); + document.getElementById("link").innerHTML = pLink+"
["+player+"]"+" "+name+"
"; + if(method == 2){ + savelist(2,selPlayer.selectedIndex,selType.selectedIndex,selMap.selectedIndex,selZone.selectedIndex,name,db);} + else{ + savelist(1,selPlayer.selectedIndex,selType.selectedIndex,0,0,name,db);} + clear("all"); + close("all"); + } + else + { + alert('Необходимо заполнить все поля!'); + } } + function removediv(u) { - var link = document.getElementById("link"); - var svbk = document.getElementById("saveblock"); - var unic = document.getElementById("unic"+u); - var save = document.getElementById("save"+u); - link.removeChild(unic); - svbk.removeChild(save); - if(u == m_nowview) - { - document.getElementById("retype").innerHTML = "Добавить"; - m_viewdiv = -1; - changestatus(2); - menu(-1); - } + var link = document.getElementById("link"); + var svbk = document.getElementById("saveblock"); + var unic = document.getElementById("unic"+u); + var save = document.getElementById("save"+u); + link.removeChild(unic); + svbk.removeChild(save); + if(u == m_nowview) + { + document.getElementById("retype").innerHTML = "Добавить"; + m_viewdiv = -1; + changestatus(2); + clear("all"); + close("all"); + } } + function viewdiv(u) { - clear("all"); - var list = document.getElementById("save"+u).innerHTML; - var param = list.split('^'); - ChangeZones(param[1]); - document.getElementById("player").selectedIndex = param[0]; - document.getElementById("map").selectedIndex = param[1]; - document.getElementById("zone").selectedIndex = param[2]; - document.getElementById("type").selectedIndex = param[3]; - document.getElementById("name").value = param[4]; - document.getElementById("db").value = param[5]; - document.getElementById("retype").innerHTML = "Закрыть"; - changestatus(1); - m_viewdiv = 1; - m_nowview = u; - menu("show"); + clear("all"); + close("all"); + var list = document.getElementById("save"+u).innerHTML; + var param = list.split('^'); + m_viewdiv = 1; + m_nowview = u; + changestatus(1); + if(param[0] == 2) + { + ChangeZones(param[2]); + document.getElementById("player").selectedIndex = param[1]; + document.getElementById("type").selectedIndex = param[2]; + document.getElementById("map").selectedIndex = param[3]; + document.getElementById("zone").selectedIndex = param[4]; + document.getElementById("name").value = param[5]; + document.getElementById("db").value = param[6]; + document.getElementById("retype").innerHTML = "Закрыть"; + open("all"); + } + else + { + document.getElementById("player").selectedIndex = param[1]; + document.getElementById("type").selectedIndex = param[2]; + document.getElementById("name").value = param[5]; + document.getElementById("db").value = param[6]; + document.getElementById("retype").innerHTML = "Закрыть"; + open(0); + open(1); + open(4); + open(5); + open(6); + } } + function changestatus(t) { - if(t == 1) - { - document.getElementById("player").disabled = true; - document.getElementById("map").disabled = true; - document.getElementById("zone").disabled = true; - document.getElementById("type").disabled = true; - document.getElementById("name").readOnly = true; - document.getElementById("db").readOnly = true; - } - else - { - document.getElementById("player").disabled = false; - document.getElementById("map").disabled = false; - document.getElementById("zone").disabled = false; - document.getElementById("type").disabled = false; - document.getElementById("name").readOnly = false; - document.getElementById("db").readOnly = false; - } + if(t == 1) + { + document.getElementById("player").disabled = true; + document.getElementById("type").disabled = true; + document.getElementById("map").disabled = true; + document.getElementById("zone").disabled = true; + document.getElementById("name").readOnly = true; + document.getElementById("db").readOnly = true; + } + else + { + document.getElementById("player").disabled = false; + document.getElementById("type").disabled = false; + document.getElementById("map").disabled = false; + document.getElementById("zone").disabled = false; + document.getElementById("name").readOnly = false; + document.getElementById("db").readOnly = false; + } } \ No newline at end of file diff --git a/send.php b/send.php index 3896ccf..b165436 100644 --- a/send.php +++ b/send.php @@ -1,10 +1,10 @@ exe($cfg->get("realmd"),"INSERT INTO `bt_message` (`id`,`account`,`sender`,`title`,`priority`,`date`,`text_1`,`text_2`,`text_3`) VALUES ('".$id."','".$area5."','".$row[0]."','".$area4."','1','".$date."','".$area1."','".$area2."','".$area3."')")) + if(!$sql->exe($cfg->get("realmd"),"INSERT INTO `bt_message` (`id`,`account`,`sender`,`title`,`priority`,`date`,`text_1`,`text_2`,`text_3`) VALUES ('".$id."','".$area5."','".$row[1]."','".$area4."','1','".$date."','".$area1."','".$area2."','".$area3."')")) { echo 'Таблица `bt_message` недоступна или повреждена! Данные не записаны!'; $t1 = false; } - if(!$sql->exe($cfg->get("realmd"),"INSERT INTO `bt_options` (`id`,`guid`,`map`,`zone`,`type`,`name`,`link`) VALUES ".$query)) + if(!$sql->exe($cfg->get("realmd"),"INSERT INTO `bt_options` (`id`,`method`,`guid`,`map`,`zone`,`type`,`name`,`link`) VALUES ".$query)) { echo 'Таблица `bt_options` недоступна или повреждена! Данные не записаны!'; $t2 = false; diff --git a/sql/realmd_bugtracker.sql b/sql/realmd_bugtracker.sql index 7bf1bea..edc72fb 100644 --- a/sql/realmd_bugtracker.sql +++ b/sql/realmd_bugtracker.sql @@ -35,6 +35,7 @@ CREATE TABLE `bt_message` ( DROP TABLE IF EXISTS `bt_options`; CREATE TABLE `bt_options` ( `id` int(11) NOT NULL, + `method` int(11) NOT NULL DEFAULT 2, `guid` int(11) NOT NULL, `map` int(11) NOT NULL, `zone` int(11) NOT NULL, diff --git a/sql/updates/realmd_revision_11.sql b/sql/updates/realmd_revision_11.sql new file mode 100644 index 0000000..03e6e4a --- /dev/null +++ b/sql/updates/realmd_revision_11.sql @@ -0,0 +1 @@ +ALTER TABLE `bt_options` ADD COLUMN `method` int(11) NOT NULL DEFAULT 2 AFTER `id`; \ No newline at end of file