MediaWiki:Versions.js — различия между версиями
Материал из RPGround Wiki
EvilCat (обсуждение | вклад) |
EvilCat (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
/* Это переключатель версий. */ | /* Это переключатель версий. */ | ||
− | + | var $vers_glossary=new Array(), $vers_current=new Array(); | |
+ | |||
+ | function setVersionsButtons() | ||
{ | { | ||
− | var $ | + | var $holder=getInnerTags(document.body, 'versionswitcher', 'div'); |
− | for (var $ | + | if (!$holder) return true; |
+ | var $buttons, $words; | ||
+ | for (var $h=0; $h<$holder.length; $h++) | ||
{ | { | ||
− | + | $vers_current[$h]=0; | |
− | $ | + | $vers_glossary[$h]=new Array(); |
− | + | $buttons=getInnerTags($holder[$h], 'versionbutton', 'span'); | |
+ | for (var $b=0; $b<$buttons.length; $b++) | ||
+ | { | ||
+ | $buttons[$b].id='var'+$h+'-'+$b; | ||
+ | if ($buttons[$b].addEventListener) $buttons[$b].addEventListener('click', pickVariant, false); | ||
+ | else if ($buttons[$b].attachEvent)$buttons[$b].attachEvent('onclick', pickVariant); | ||
+ | } | ||
+ | $buttons=getInnerTags($holder[$h], 'wordvariant', 'span'); | ||
+ | for (var $b=0; $b<$buttons.length; $b++) | ||
+ | { | ||
+ | $words=$buttons[$b].innerHTML; | ||
+ | $vers_glossary[$h][$b]=$words.split(','); | ||
+ | } | ||
} | } | ||
− | + | var $nop=true; | |
} | } | ||
+ | function pickVariant(e) | ||
+ | { | ||
+ | if (!e) var e = window.event; | ||
+ | var $button; | ||
+ | if (e.target) $button = e.target; | ||
+ | else if (e.srcElement) $button = e.srcElement; | ||
+ | if ($button.tagName=='U') $button=$button.parentNode; | ||
+ | var $id=$button.id.substr(3); | ||
+ | $id=$id.split('-'); | ||
+ | var $group=$id[0], $pick=$id[1]; | ||
+ | if ($vers_current[$group]==$pick) return true; | ||
+ | var $varianted=getInnerTags(document.body, 'varianted', 'span'); | ||
+ | for ($v=0; $v<$varianted.length; $v++) | ||
+ | { | ||
+ | for ($c=0; $c<12; $c++) | ||
+ | { | ||
+ | if (hasClass($varianted[$v], 'case'+$c)) | ||
+ | { | ||
+ | if ($varianted[$v].innerHTML==$vers_glossary[$group][$vers_current[$group]][$c]) $varianted[$v].innerHTML=$vers_glossary[$group][$pick][$c]; | ||
+ | else $varianted[$v].innerHTML=ucfirst($vers_glossary[$group][$pick][$c]); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | $vers_current[$group]=$pick; | ||
+ | } | ||
− | / | + | function ucfirst (str) { |
− | + | // Makes a string's first character uppercase | |
− | + | // | |
− | + | // version: 1008.1718 | |
− | + | // discuss at: http://phpjs.org/functions/ucfirst // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) | |
− | ' | + | // + bugfixed by: Onno Marsman |
+ | // + improved by: Brett Zamir (http://brett-zamir.me) | ||
+ | // * example 1: ucfirst('kevin van zonneveld'); | ||
+ | // * returns 1: 'Kevin van zonneveld' str += ''; | ||
+ | var f = str.charAt(0).toUpperCase(); | ||
+ | return f + str.substr(1); | ||
} | } | ||
− |
Текущая версия на 22:55, 30 августа 2010
/* Это переключатель версий. */ var $vers_glossary=new Array(), $vers_current=new Array(); function setVersionsButtons() { var $holder=getInnerTags(document.body, 'versionswitcher', 'div'); if (!$holder) return true; var $buttons, $words; for (var $h=0; $h<$holder.length; $h++) { $vers_current[$h]=0; $vers_glossary[$h]=new Array(); $buttons=getInnerTags($holder[$h], 'versionbutton', 'span'); for (var $b=0; $b<$buttons.length; $b++) { $buttons[$b].id='var'+$h+'-'+$b; if ($buttons[$b].addEventListener) $buttons[$b].addEventListener('click', pickVariant, false); else if ($buttons[$b].attachEvent)$buttons[$b].attachEvent('onclick', pickVariant); } $buttons=getInnerTags($holder[$h], 'wordvariant', 'span'); for (var $b=0; $b<$buttons.length; $b++) { $words=$buttons[$b].innerHTML; $vers_glossary[$h][$b]=$words.split(','); } } var $nop=true; } function pickVariant(e) { if (!e) var e = window.event; var $button; if (e.target) $button = e.target; else if (e.srcElement) $button = e.srcElement; if ($button.tagName=='U') $button=$button.parentNode; var $id=$button.id.substr(3); $id=$id.split('-'); var $group=$id[0], $pick=$id[1]; if ($vers_current[$group]==$pick) return true; var $varianted=getInnerTags(document.body, 'varianted', 'span'); for ($v=0; $v<$varianted.length; $v++) { for ($c=0; $c<12; $c++) { if (hasClass($varianted[$v], 'case'+$c)) { if ($varianted[$v].innerHTML==$vers_glossary[$group][$vers_current[$group]][$c]) $varianted[$v].innerHTML=$vers_glossary[$group][$pick][$c]; else $varianted[$v].innerHTML=ucfirst($vers_glossary[$group][$pick][$c]); } } } $vers_current[$group]=$pick; } function ucfirst (str) { // Makes a string's first character uppercase // // version: 1008.1718 // discuss at: http://phpjs.org/functions/ucfirst // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + improved by: Brett Zamir (http://brett-zamir.me) // * example 1: ucfirst('kevin van zonneveld'); // * returns 1: 'Kevin van zonneveld' str += ''; var f = str.charAt(0).toUpperCase(); return f + str.substr(1); }