Difference between revisions of "Widget:mainpage"
Jump to navigation
Jump to search
Pianoforte (talk | contribs) |
(Added document-ready wait functionality as the MediaWiki does not wait for DOM) |
||
(17 intermediate revisions by 3 users not shown) | |||
Line 16: | Line 16: | ||
} | } | ||
− | function changeServer () { | + | function changeServer (serverName) { |
− | + | ||
document.cookie = "serverSelection=" + serverName; | document.cookie = "serverSelection=" + serverName; | ||
+ | |||
+ | |||
+ | tablinks = document.getElementsByClassName("serverTabLinks"); | ||
+ | for (i = 0; i < tablinks.length; i++) { | ||
+ | tablinks[i].className = tablinks[i].className.replace("serverTabLinks-active", ""); | ||
+ | } | ||
+ | document.getElementById('serverTabLink-' + serverName).className += " serverTabLinks-active"; | ||
+ | |||
$(".banners, .promotions, .updates").each(function(){ | $(".banners, .promotions, .updates").each(function(){ | ||
this.style.position="absolute"; | this.style.position="absolute"; | ||
− | this.style.visibility="hidden";}) | + | this.style.visibility="hidden"; |
+ | }) | ||
− | |||
document.getElementById("banner-" + serverName).style.position = "relative"; | document.getElementById("banner-" + serverName).style.position = "relative"; | ||
document.getElementById("banner-" + serverName).style.visibility ="visible"; | document.getElementById("banner-" + serverName).style.visibility ="visible"; | ||
Line 35: | Line 43: | ||
$(".jcarousel-item").each(function(){$(this).css("width", $(this).parent().parent().outerWidth());}) | $(".jcarousel-item").each(function(){$(this).css("width", $(this).parent().parent().outerWidth());}) | ||
+ | |||
+ | |||
+ | $("div#banner-" + serverName + " > div > div > div").each(function(){$(this.firstChild).attr("src", $(this).data("value"))}); | ||
+ | $("div#promotion-" + serverName + " > div > div > div").each(function(){$(this.getElementsByTagName('img')[1]).attr("src", $(this).data("value"))}); | ||
+ | if (serverName == "cn") { | ||
+ | document.getElementById("eventsUrl").firstChild.href = "/wiki/Events"; | ||
+ | document.getElementById("updatesUrl").firstChild.href = "/wiki/Updates"; | ||
+ | } | ||
+ | else { | ||
+ | document.getElementById("eventsUrl").firstChild.href = "/wiki/Events_(" + serverName.toUpperCase()+")"; | ||
+ | document.getElementById("updatesUrl").firstChild.href = "/wiki/Updates_(" + serverName.toUpperCase()+")"; | ||
+ | } | ||
} | } | ||
− | RLQ.push(function () { | + | RLQ.push(['jquery', function () { |
$(document).ready(function() { | $(document).ready(function() { | ||
var serverSelection = getCookie ("serverSelection"); | var serverSelection = getCookie ("serverSelection"); | ||
− | if (serverSelection == "") serverSelection = "cn" | + | if (serverSelection == "") serverSelection = "cn"; // This wiki is based on CN server |
− | + | var firstHeading = document.getElementById("firstHeading"); | |
+ | if (firstHeading == null) { | ||
+ | firstHeading = document.getElementsByClassName ("mf-section-0")[0]; | ||
+ | firstHeading.insertBefore(document.createElement ("H1"), firstHeading.firstChild); | ||
+ | firstHeading = firstHeading.firstChild; | ||
+ | } | ||
− | changeServer (serverSelection); | + | if (document.getElementsByClassName("serverTabLinks").length == 0) { |
+ | |||
+ | serverTabSpan = document.createElement ("span"); | ||
+ | |||
+ | firstHeading.appendChild(serverTabSpan); | ||
+ | |||
+ | serverTabSpan.outerHTML = '<span id="serverTabSpan">' + | ||
+ | '<button id="serverTabLink-cn" class="serverTabLinks" onclick="changeServer(\'cn\')">Bilibili/DigitalSky (CN)</button>' + | ||
+ | '<button id="serverTabLink-en" class="serverTabLinks" onclick="changeServer(\'en\')">Sunborngame (EN)</button>' + | ||
+ | '<button id="serverTabLink-kr" class="serverTabLinks" onclick="changeServer(\'kr\')">X.D. Global (KR)</button>' + | ||
+ | '<button id="serverTabLink-tw" class="serverTabLinks" onclick="changeServer(\'tw\')">Tianxia Game (TW)</button>' + | ||
+ | '<button id="serverTabLink-jp" class="serverTabLinks" onclick="changeServer(\'jp\')">Sunborngame (JP)</button>' + | ||
+ | '<span>'; | ||
+ | } | ||
+ | |||
+ | changeServer (serverSelection); | ||
}); | }); | ||
− | }); | + | }]); |
</script> | </script> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 15:11, 14 October 2019
<script> function getCookie(cname) {
var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i <ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return "";
}
function changeServer (serverName) {
document.cookie = "serverSelection=" + serverName;
tablinks = document.getElementsByClassName("serverTabLinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace("serverTabLinks-active", ""); } document.getElementById('serverTabLink-' + serverName).className += " serverTabLinks-active";
$(".banners, .promotions, .updates").each(function(){ this.style.position="absolute"; this.style.visibility="hidden"; }) document.getElementById("banner-" + serverName).style.position = "relative"; document.getElementById("banner-" + serverName).style.visibility ="visible";
document.getElementById("update-" + serverName).style.position = "relative"; document.getElementById("update-" + serverName).style.visibility ="visible";
document.getElementById("promotion-" + serverName).style.position = "relative"; document.getElementById("promotion-" + serverName).style.visibility ="visible";
$(".jcarousel-item").each(function(){$(this).css("width", $(this).parent().parent().outerWidth());})
$("div#banner-" + serverName + " > div > div > div").each(function(){$(this.firstChild).attr("src", $(this).data("value"))}); $("div#promotion-" + serverName + " > div > div > div").each(function(){$(this.getElementsByTagName('img')[1]).attr("src", $(this).data("value"))}); if (serverName == "cn") { document.getElementById("eventsUrl").firstChild.href = "/wiki/Events"; document.getElementById("updatesUrl").firstChild.href = "/wiki/Updates"; } else { document.getElementById("eventsUrl").firstChild.href = "/wiki/Events_(" + serverName.toUpperCase()+")"; document.getElementById("updatesUrl").firstChild.href = "/wiki/Updates_(" + serverName.toUpperCase()+")"; }
}
RLQ.push(['jquery', function () {
$(document).ready(function() { var serverSelection = getCookie ("serverSelection"); if (serverSelection == "") serverSelection = "cn"; // This wiki is based on CN server
var firstHeading = document.getElementById("firstHeading"); if (firstHeading == null) { firstHeading = document.getElementsByClassName ("mf-section-0")[0]; firstHeading.insertBefore(document.createElement ("H1"), firstHeading.firstChild); firstHeading = firstHeading.firstChild; }
if (document.getElementsByClassName("serverTabLinks").length == 0) { serverTabSpan = document.createElement ("span");
firstHeading.appendChild(serverTabSpan);
serverTabSpan.outerHTML = '' +
'<button id="serverTabLink-cn" class="serverTabLinks" onclick="changeServer(\'cn\')">Bilibili/DigitalSky (CN)</button>' +
'<button id="serverTabLink-en" class="serverTabLinks" onclick="changeServer(\'en\')">Sunborngame (EN)</button>' +
'<button id="serverTabLink-kr" class="serverTabLinks" onclick="changeServer(\'kr\')">X.D. Global (KR)</button>' +
'<button id="serverTabLink-tw" class="serverTabLinks" onclick="changeServer(\'tw\')">Tianxia Game (TW)</button>' +
'<button id="serverTabLink-jp" class="serverTabLinks" onclick="changeServer(\'jp\')">Sunborngame (JP)</button>' +
'';
}
changeServer (serverSelection); });
}]); </script>