<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://xn--b1amah.xn--d1ad.xn--p1ai/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://xn--b1amah.xn--d1ad.xn--p1ai/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-markblocked.js</id>
		<title>MediaWiki:Gadget-markblocked.js - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://xn--b1amah.xn--d1ad.xn--p1ai/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-markblocked.js"/>
		<link rel="alternate" type="text/html" href="http://xn--b1amah.xn--d1ad.xn--p1ai/w/index.php?title=MediaWiki:Gadget-markblocked.js&amp;action=history"/>
		<updated>2026-05-26T21:41:01Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>http://xn--b1amah.xn--d1ad.xn--p1ai/w/index.php?title=MediaWiki:Gadget-markblocked.js&amp;diff=1399&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://xn--b1amah.xn--d1ad.xn--p1ai/w/index.php?title=MediaWiki:Gadget-markblocked.js&amp;diff=1399&amp;oldid=prev"/>
				<updated>2011-06-28T13:34:01Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;function markBlocked() {&lt;br /&gt;
&lt;br /&gt;
  if (!window.mbTempStyle)&lt;br /&gt;
    mbTempStyle = 'opacity: 0.7; text-decoration: line-through'&lt;br /&gt;
  if (!window.mbIndefStyle)&lt;br /&gt;
    mbIndefStyle = 'opacity: 0.4; font-style: italic; text-decoration: line-through'&lt;br /&gt;
  if (!window.mbTipBoxStyle)&lt;br /&gt;
    mbTipBoxStyle = 'font-size:smaller; background:#FFFFF0; ' +&lt;br /&gt;
                    'border:1px solid #FEA; padding:0 0.3em; color:#AAA'&lt;br /&gt;
  if (!window.mbTooltip) {&lt;br /&gt;
    i18n = {&lt;br /&gt;
      'dsb': '(blokěrowany wót $2 za traśe wót $1: $3)',&lt;br /&gt;
      'de': '(von $2 für die Zeitdauer $1 gesperrt: $3)',&lt;br /&gt;
      'en': '(blocked by $2 with an expiry time of $1: $3)',&lt;br /&gt;
      'eo': '(forbarita de $2 por daŭro de $1: $3)',&lt;br /&gt;
      'hsb': '(zablokowany wot $2 za traće wot $1: $3)',&lt;br /&gt;
      'ja': '($2によるブロック。期限:$1 理由:$3)',&lt;br /&gt;
      'ko': '(차단: $2, 기한: $1, 이유: $3)',&lt;br /&gt;
      'pt': '(bloqueado por $2 até $1: $3)',&lt;br /&gt;
      'ru': '(блокировка $2 на срок $1: $3)',&lt;br /&gt;
      'sv': '(har blockerats av $2 till $1: $3)',&lt;br /&gt;
      'uk': '(блокування $2 на термін $1: $3)'&lt;br /&gt;
    }&lt;br /&gt;
    mbTooltip = i18n[wgUserLanguage] || i18n.en&lt;br /&gt;
  }&lt;br /&gt;
  appendCSS('.user-blocked-temp    {' + mbTempStyle   + '}\n' +&lt;br /&gt;
            '.user-blocked-indef   {' + mbIndefStyle  + '}\n' +&lt;br /&gt;
            '.user-blocked-tipbox  {' + mbTipBoxStyle + '}')&lt;br /&gt;
  function apiRequest(params, callback) {&lt;br /&gt;
    var aj = sajax_init_object() &lt;br /&gt;
    aj.onreadystatechange = function() {&lt;br /&gt;
      if (aj.readyState != 4 || aj.status != 200) return  &lt;br /&gt;
      callback(eval('(' + aj.responseText + ')'))&lt;br /&gt;
    }&lt;br /&gt;
    aj.open('GET', wgServer + wgScriptPath + '/api.php?format=json&amp;amp;' + params, true)&lt;br /&gt;
    aj.send('')&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  var users = []&lt;br /&gt;
  var userLinks = []&lt;br /&gt;
&lt;br /&gt;
  function checkLinks(namespaces) {&lt;br /&gt;
    function target(link) {&lt;br /&gt;
      ap = wgArticlePath.replace('$1', '')&lt;br /&gt;
      if (link.href.replace(wgServer, '').match(/^http:/)) return ''&lt;br /&gt;
        // elimnating the decodeURIComponent() error on non-UTF links&lt;br /&gt;
      if (link.href.replace(wgServer, '').substr(0, ap.length) == ap) // .wikipedia.org/wiki/...&lt;br /&gt;
        return link.title + (link.href.match(/#/) ? '#...' : '')&lt;br /&gt;
                          // that's risky, but we can't bypass IE6's bugs another way...&lt;br /&gt;
                          // &amp;quot;thanks&amp;quot; Tim Starling if it breaks eventually :(&lt;br /&gt;
      else // .wikipedia.org/w/index.php?title=...&lt;br /&gt;
        return decodeURIComponent(link.href.replace(wgScript, '')&lt;br /&gt;
                                           .replace(/.*[?&amp;amp;]title=(.*?)&amp;amp;[^#]*/, '$1')&lt;br /&gt;
                                           .replace(/_/g, ' '))&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    var content = document.getElementById('content') ||&lt;br /&gt;
                  document.getElementById('mw_content') ||&lt;br /&gt;
                  document.body&lt;br /&gt;
    var links = content.getElementsByTagName('a')&lt;br /&gt;
      &lt;br /&gt;
    var ns = namespaces.query.namespaces&lt;br /&gt;
    var ca&lt;br /&gt;
    for (var i = 0; i &amp;lt; namespaces.query.specialpagealiases.length; i++) {&lt;br /&gt;
      if (namespaces.query.specialpagealiases[i].realname == 'Contributions')&lt;br /&gt;
        ca = namespaces.query.specialpagealiases[i].aliases&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if (!namespaces.fromcookie) {&lt;br /&gt;
      document.cookie = 'mbNamespaces='&lt;br /&gt;
            + escape([ns[-1]['*'], ns[2]['*'], ns[3]['*'], ca.join('|')].join(':'))&lt;br /&gt;
            + '; expires=' + (new Date((new Date).getTime() + Math.exp(20))).toGMTString()&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //   User:   User_talk:   Special:Contributions/   in canonical form, as they are in hrefs&lt;br /&gt;
    var isUser = new RegExp('^((' + ns[2]['*'] + '|' + ns[3]['*'] + '):|' + ns[-1]['*'] +&lt;br /&gt;
                                   ':(' + ca.join('|').replace(/_/g, ' ') + ')\\/)([^\\/#]*)$')&lt;br /&gt;
    var j = 0&lt;br /&gt;
    for (i = 0; i &amp;lt; links.length; i++) {&lt;br /&gt;
      if (target(links[i]).match(isUser)) {&lt;br /&gt;
        users[j++] = target(links[i]).replace(isUser, '$4')&lt;br /&gt;
        userLinks[j-1] = links[i]&lt;br /&gt;
        links[i].style.opacity = window.mbLoadingOpacity || 0.85 // a way to mark that the data is loading&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (j == 0) return // nobody to mark&lt;br /&gt;
&lt;br /&gt;
    var query = ''&lt;br /&gt;
    &lt;br /&gt;
    // performing sort and duplicate cleanup, otherwise we risk of some users being marked twice&lt;br /&gt;
    var usersTemp = users.join('|').split('|')&lt;br /&gt;
        usersTemp.sort()&lt;br /&gt;
    var u = []&lt;br /&gt;
        u[0] = usersTemp[0]&lt;br /&gt;
    if (usersTemp[1]) {&lt;br /&gt;
      j = 1&lt;br /&gt;
      for (i = 1; i &amp;lt; usersTemp.length; i++) {&lt;br /&gt;
        if (usersTemp[i] != usersTemp[i-1])&lt;br /&gt;
          u[j++] = usersTemp[i]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    for (i = 0; i &amp;lt; u.length; i++) {&lt;br /&gt;
      if (query.length &amp;gt; 1666) { // splitting the URL into small parts when needed&lt;br /&gt;
        apiRequest('action=query&amp;amp;list=blocks&amp;amp;bklimit=500&amp;amp;bkusers=' + query, markLinks)&lt;br /&gt;
        query = ''&lt;br /&gt;
      }&lt;br /&gt;
      query += (query ? '|' : '') + encodeURIComponent(u[i])&lt;br /&gt;
    }&lt;br /&gt;
    if (query) apiRequest('action=query&amp;amp;list=blocks&amp;amp;bklimit=500&amp;amp;bkusers=' + query, markLinks)&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  function markLinks(banlist) {&lt;br /&gt;
    var bl = banlist.query.blocks&lt;br /&gt;
    if (!bl) { // no bans&lt;br /&gt;
      for (var i = 0; i &amp;lt; userLinks.length; i++)&lt;br /&gt;
        userLinks[i].style.opacity = ''&lt;br /&gt;
      return&lt;br /&gt;
    }&lt;br /&gt;
    var mark = []&lt;br /&gt;
    var tips = {}&lt;br /&gt;
    var infin = {}&lt;br /&gt;
    var j = 0&lt;br /&gt;
    for (var i = 0; i &amp;lt; bl.length; i++) {&lt;br /&gt;
      mark[j++] = bl[i].user&lt;br /&gt;
      tips[bl[i].user] = ' ' + mbTooltip&lt;br /&gt;
                               .replace('$1', bl[i].expiry.replace(/(.*)T(.*)Z/, '$1 $2 UTC'))&lt;br /&gt;
                               .replace('$2', bl[i].by)&lt;br /&gt;
                               .replace('$3', bl[i].reason)&lt;br /&gt;
      infin[bl[i].user] = bl[i].expiry.substr(0, 2) == 'in'&lt;br /&gt;
    }&lt;br /&gt;
    var fenceOfShame = '|' + mark.join('|') + '|'&lt;br /&gt;
    var span&lt;br /&gt;
    for (var i = 0; i &amp;lt; userLinks.length; i++) {&lt;br /&gt;
      userLinks[i].style.opacity = ''&lt;br /&gt;
      if (fenceOfShame.indexOf('|' + users[i] + '|') &amp;gt; -1) {&lt;br /&gt;
        userLinks[i].className += ' user-blocked-' + (infin[users[i]] ? 'indef' : 'temp')&lt;br /&gt;
        if (window.mbTipBox) {&lt;br /&gt;
          span = document.createElement('span')&lt;br /&gt;
          span.title = users[i] + tips[users[i]]&lt;br /&gt;
          span.className = 'user-blocked-tipbox'&lt;br /&gt;
          span.innerHTML = '#'&lt;br /&gt;
          userLinks[i].parentNode.insertBefore(span, userLinks[i])&lt;br /&gt;
        } else&lt;br /&gt;
          userLinks[i].title += tips[users[i]]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if (ca = document.getElementById('ca-showblocks'))&lt;br /&gt;
    ca.parentNode.removeChild(ca)&lt;br /&gt;
  &lt;br /&gt;
  var cookie = document.cookie.match(/mbNamespaces=(.*?);/)&lt;br /&gt;
  if (cookie) {&lt;br /&gt;
    cookie = unescape(cookie[1]).split(':')&lt;br /&gt;
    checkLinks({&lt;br /&gt;
      'query': {&lt;br /&gt;
        'namespaces': { '-1': { '*': cookie[0] }, '2': { '*': cookie[1] }, '3': { '*': cookie[2] } },&lt;br /&gt;
        'specialpagealiases': [{'realname': 'Contributions', 'aliases': cookie[3].split('|')}]&lt;br /&gt;
      },&lt;br /&gt;
      'fromcookie': 1&lt;br /&gt;
    })&lt;br /&gt;
  } else {&lt;br /&gt;
    apiRequest('action=query&amp;amp;meta=siteinfo&amp;amp;siprop=namespaces|specialpagealiases', checkLinks)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (wgAction != 'edit') {&lt;br /&gt;
  if (window.mbNoAutoStart) {&lt;br /&gt;
    f = function(){&lt;br /&gt;
      addPortletLink('p-cactions', 'javascript:markBlocked()', 'XX', 'ca-showblocks')&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    f = markBlocked&lt;br /&gt;
  }&lt;br /&gt;
  addOnloadHook(f)&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>