monobook.css: Unterschied zwischen den Versionen

Aus RMG-Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde geleert.)
Zeile 1: Zeile 1:
 
+
var rcp_http;
 +
var rcp_enabled;
 +
var rcp_num_pages;
 +
var rcp_refresh;
 +
 +
addOnloadHook( rcp_init );
 +
 +
/* initalise */
 +
function rcp_init() {
 +
 +
  // allow user settings through
 +
  if(rcp_enabled == null) {
 +
    rcp_enabled = false;
 +
  }
 +
  if(rcp_num_pages == null) {
 +
    rcp_num_pages = 10;
 +
  }
 +
  if(rcp_refresh == null) {
 +
    rcp_refresh = 5;
 +
  }
 +
 +
  // A few limits to be nice to the servers
 +
  if (rcp_num_pages > 50) {
 +
    rcp_num_pages = 50;
 +
  }
 +
  if (rcp_num_pages < 1) {
 +
    rcp_num_pages = 1;
 +
  }
 +
  if (rcp_refresh < 2) {
 +
    rcp_refresh = 2;
 +
  }
 +
 +
  // get our cookie
 +
  if (document.cookie.length > 0) {
 +
    var c_start = document.cookie.indexOf("rcp_show_box=");
 +
    if (c_start != -1) {
 +
      c_start = c_start + 13;
 +
      var c_end = document.cookie.indexOf(";", c_start);
 +
      if (c_end == -1) {
 +
        c_end = document.cookie.length;
 +
      }
 +
 +
      if (document.cookie.substring(c_start, c_end) == "yes") {
 +
        rcp_enabled = true;
 +
      } else {
 +
        rcp_enabled = false;
 +
      }
 +
    }
 +
  }
 +
 +
  // Either make a request or show nothing
 +
  if (rcp_enabled == true) {
 +
    rcp_ajax_request();
 +
  } else {
 +
    rcp_draw_disabled_box();
 +
  }
 +
}
 +
 +
/* init ajax */
 +
function rcp_create_request() {
 +
  try {
 +
    rcp_http = new XMLHttpRequest();
 +
 +
  } catch (e) {
 +
    try {
 +
      rcp_http = new ActiveXObject("Msxml2.XMLHTTP");
 +
    } catch (e) {
 +
      try {
 +
        rcp_http = new ActiveXObject("Microsoft.XMLHTTP");
 +
      } catch (e) {
 +
        alert("Your browser does not support AJAX!");
 +
        return false;
 +
      }
 +
    }
 +
  }
 +
 +
  rcp_http.onreadystatechange = function() {
 +
    if(rcp_http.readyState == 4) rcp_ajax_response();
 +
  }
 +
 +
  return true;
 +
}
 +
 +
/* make a request */
 +
function rcp_ajax_request() {
 +
  // check we are enabled
 +
  if (rcp_enabled == false) return;
 +
 +
  // firstly, inform the user
 +
  var cur_box = document.getElementById('p-recentchanges');
 +
  if (cur_box != null) {
 +
    cur_box.firstChild.firstChild.data = 'Recent Changes (updating)';
 +
  }
 +
 +
  if (rcp_create_request () == false) {
 +
    if (cur_box != null) {
 +
      cur_box.firstChild.firstChild.data = 'Recent Changes (update failed)';
 +
    } else {
 +
      alert ("There seems to be a problem using the RecentChangePatrol script. I can't make AJAX objects, so I'm just going to complain. God Bless!");
 +
    }
 +
  }
 +
 +
  // Then make the request
 +
  rcp_http.open("GET", "http://en.wikipedia.org/w/api.php?action=query&list=recentchanges&format=xml&rcnamespace=0&rcshow=!bot&rcshow=!minor&rclimit=" + rcp_num_pages, true);
 +
  rcp_http.send(null);
 +
}
 +
 +
/* we have received a response */
 +
function rcp_ajax_response() {
 +
 +
  var items = rcp_http.responseXML.getElementsByTagName('rc');
 +
 +
  // create the div that holds all the recentchanges links
 +
  var link_div = document.createElement('div');
 +
  link_div.className = 'pBody';
 +
  var list = document.createElement('ul');
 +
  link_div.appendChild(list);
 +
 +
  // populate the list with 10 links.
 +
  for (var i = 0; i < items.length; i++) {
 +
    var item_name = items[i].getAttribute('title');
 +
    var item_url = 'http://en.wikipedia.org/w/index.php?diff=cur&oldid=prev&title=' + escape(item_name);
 +
 +
    a = document.createElement('a');
 +
    a.setAttribute('href', item_url);
 +
    a.appendChild(document.createTextNode(item_name));
 +
 +
    var li = document.createElement('li');
 +
    li.appendChild(a);
 +
    list.appendChild(li);
 +
  }
 +
 +
  // Container div
 +
  var div = document.createElement('div');
 +
  div.setAttribute('id', 'p-recentchanges');
 +
  div.className = 'portlet';
 +
  var heading = document.createElement('h5');
 +
  heading.appendChild(document.createTextNode('Recent Changes'));
 +
  div.appendChild(heading);
 +
  div.appendChild(link_div);
 +
 +
  // disable link
 +
  var p = document.createElement('p');
 +
  p.style.fontSize = 'x-small';
 +
  p.style.margin = '0px';
 +
  p.style.textAlign = 'right';
 +
  a = document.createElement('a');
 +
  a.appendChild(document.createTextNode('disable this box'));
 +
  a.onclick = rcp_disable_box;
 +
  p.appendChild(a);
 +
  link_div.appendChild(p);
 +
 +
  // now replace the div
 +
  var old_div = document.getElementById('p-recentchanges');
 +
  var side_col = document.getElementById('column-one');
 +
  if (old_div != null) {
 +
    side_col.replaceChild(div, old_div);
 +
  } else {
 +
    var node = document.getElementById('p-search');
 +
    side_col.insertBefore(div, node);
 +
  }
 +
 +
  // and do it again in 5 secs
 +
  setTimeout("rcp_ajax_request()", rcp_refresh * 1000);
 +
}
 +
 +
function rcp_disable_box() {
 +
  rcp_enabled = false;
 +
  rcp_draw_disabled_box();
 +
  document.cookie = "rcp_show_box=no; path=/";
 +
}
 +
 +
function rcp_enable_box() {
 +
  rcp_enabled = true;
 +
  document.cookie = "rcp_show_box=yes; path=/";
 +
  rcp_ajax_request();
 +
}
 +
 +
function rcp_draw_disabled_box() {
 +
  // Container div
 +
  var link_div = document.createElement('div');
 +
  link_div.className = 'pBody';
 +
  var div = document.createElement('div');
 +
  div.setAttribute('id', 'p-recentchanges');
 +
  div.className = 'portlet';
 +
  var heading = document.createElement('h5');
 +
  heading.appendChild(document.createTextNode('Recent Changes'));
 +
  div.appendChild(heading);
 +
  div.appendChild(link_div);
 +
 +
  // enable link
 +
  var p = document.createElement('p');
 +
  p.style.fontSize = 'x-small';
 +
  p.style.margin = '0px';
 +
  var a = document.createElement('a');
 +
  a.appendChild(document.createTextNode('enable this box'));
 +
  a.onclick = rcp_enable_box;
 +
  p.appendChild(a);
 +
  link_div.appendChild(p);
 +
 +
  // now replace the div
 +
  var old_div = document.getElementById('p-recentchanges');
 +
  var side_col = document.getElementById('column-one');
 +
  if (old_div != null) {
 +
    side_col.replaceChild(div, old_div);
 +
  } else {
 +
    var node = document.getElementById('p-search');
 +
    side_col.insertBefore(div, node);
 +
  }
 +
}

Version vom 3. Oktober 2008, 18:15 Uhr

var rcp_http;
var rcp_enabled;
var rcp_num_pages;
var rcp_refresh;
 
addOnloadHook( rcp_init );
 
/* initalise */
function rcp_init() {
 
  // allow user settings through
  if(rcp_enabled == null) {
    rcp_enabled = false;
  }
  if(rcp_num_pages == null) {
    rcp_num_pages = 10;
  }
  if(rcp_refresh == null) {
    rcp_refresh = 5;
  }
 
  // A few limits to be nice to the servers
  if (rcp_num_pages > 50) {
    rcp_num_pages = 50;
  }
  if (rcp_num_pages < 1) {
    rcp_num_pages = 1;
  }
  if (rcp_refresh < 2) {
    rcp_refresh = 2;
  }
 
  // get our cookie
  if (document.cookie.length > 0) {
    var c_start = document.cookie.indexOf("rcp_show_box=");
    if (c_start != -1) { 
      c_start = c_start + 13; 
      var c_end = document.cookie.indexOf(";", c_start);
      if (c_end == -1) {
        c_end = document.cookie.length;
      }
 
      if (document.cookie.substring(c_start, c_end) == "yes") {
        rcp_enabled = true;
      } else {
        rcp_enabled = false;
      }
    } 
  }
 
  // Either make a request or show nothing
  if (rcp_enabled == true) {
    rcp_ajax_request();
  } else {
    rcp_draw_disabled_box();
  }
}
 
/* init ajax */
function rcp_create_request() {
  try {
    rcp_http = new XMLHttpRequest();
 
  } catch (e) {
    try {
      rcp_http = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        rcp_http = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        alert("Your browser does not support AJAX!");
        return false;
      }
    }
  }
 
  rcp_http.onreadystatechange = function() {
    if(rcp_http.readyState == 4) rcp_ajax_response();
  }
 
  return true;
}
 
/* make a request */
function rcp_ajax_request() {
  // check we are enabled
  if (rcp_enabled == false) return;
 
  // firstly, inform the user
  var cur_box = document.getElementById('p-recentchanges');
  if (cur_box != null) {
    cur_box.firstChild.firstChild.data = 'Recent Changes (updating)';
  }
 
  if (rcp_create_request () == false) {
    if (cur_box != null) {
      cur_box.firstChild.firstChild.data = 'Recent Changes (update failed)';
    } else {
      alert ("There seems to be a problem using the RecentChangePatrol script. I can't make AJAX objects, so I'm just going to complain. God Bless!");
    }
  }
 
  // Then make the request
  rcp_http.open("GET", "http://en.wikipedia.org/w/api.php?action=query&list=recentchanges&format=xml&rcnamespace=0&rcshow=!bot&rcshow=!minor&rclimit=" + rcp_num_pages, true);
  rcp_http.send(null);
}
 
/* we have received a response */
function rcp_ajax_response() {
 
  var items = rcp_http.responseXML.getElementsByTagName('rc');
 
  // create the div that holds all the recentchanges links
  var link_div = document.createElement('div');
  link_div.className = 'pBody';
  var list = document.createElement('ul');
  link_div.appendChild(list);
 
  // populate the list with 10 links.
  for (var i = 0; i < items.length; i++) {
    var item_name = items[i].getAttribute('title');
    var item_url = 'http://en.wikipedia.org/w/index.php?diff=cur&oldid=prev&title=' + escape(item_name);
 
    a = document.createElement('a');
    a.setAttribute('href', item_url);
    a.appendChild(document.createTextNode(item_name));
 
    var li = document.createElement('li');
    li.appendChild(a);
    list.appendChild(li);
  }
 
  // Container div
  var div = document.createElement('div');
  div.setAttribute('id', 'p-recentchanges');
  div.className = 'portlet';
  var heading = document.createElement('h5');
  heading.appendChild(document.createTextNode('Recent Changes'));
  div.appendChild(heading);
  div.appendChild(link_div);
 
  // disable link
  var p = document.createElement('p');
  p.style.fontSize = 'x-small';
  p.style.margin = '0px';
  p.style.textAlign = 'right';
  a = document.createElement('a');
  a.appendChild(document.createTextNode('disable this box'));
  a.onclick = rcp_disable_box;
  p.appendChild(a);
  link_div.appendChild(p);
 
  // now replace the div
  var old_div = document.getElementById('p-recentchanges');
  var side_col = document.getElementById('column-one');
  if (old_div != null) {
    side_col.replaceChild(div, old_div);
  } else {
    var node = document.getElementById('p-search');
    side_col.insertBefore(div, node);
  }
 
  // and do it again in 5 secs
  setTimeout("rcp_ajax_request()", rcp_refresh * 1000);
}
 
function rcp_disable_box() {
  rcp_enabled = false;
  rcp_draw_disabled_box();
  document.cookie = "rcp_show_box=no; path=/";
}
 
function rcp_enable_box() {
  rcp_enabled = true;
  document.cookie = "rcp_show_box=yes; path=/";
  rcp_ajax_request();
}
 
function rcp_draw_disabled_box() {
  // Container div
  var link_div = document.createElement('div');
  link_div.className = 'pBody';
  var div = document.createElement('div');
  div.setAttribute('id', 'p-recentchanges');
  div.className = 'portlet';
  var heading = document.createElement('h5');
  heading.appendChild(document.createTextNode('Recent Changes'));
  div.appendChild(heading);
  div.appendChild(link_div);
 
  // enable link
  var p = document.createElement('p');
  p.style.fontSize = 'x-small';
  p.style.margin = '0px';
  var a = document.createElement('a');
  a.appendChild(document.createTextNode('enable this box'));
  a.onclick = rcp_enable_box;
  p.appendChild(a);
  link_div.appendChild(p);
 
  // now replace the div
  var old_div = document.getElementById('p-recentchanges');
  var side_col = document.getElementById('column-one');
  if (old_div != null) {
    side_col.replaceChild(div, old_div);
  } else {
    var node = document.getElementById('p-search');
    side_col.insertBefore(div, node);
  }
}