Usuario:CSTN/Ticker.js
Nota: Después de guardar, debes recargar la caché de tu navegador para ver los cambios:
- Mozilla: Pulsa Recargar (o Ctrl-R)
- Internet Explorer / Opera: Ctrl-F5
- Safari: Cmd-R
- Konqueror Ctrl-R.
var ticker_enabled = true;
if(navigator.userAgent.indexOf("MSIE") == -1){ //Desactivado para IE, AJAX etc es realmente un problema en IE.
var ticker_tl=new Array(); //¡¡NO LO TOQUES!!
var ticker_speed=20; //Aumenta para ir más despacio, muy bajo lo hace ir increiblemente lento, 15 es lo estandar.
var ticker_index=0; ticker_text_pos=0; //¡¡NO LO TOQUES!!
var ticker_str_length; //¡¡NO LO TOQUES!!
var ticker_contents, ticker_row; //¡¡NO LO TOQUES!!
//Algunas personas pueden hacer sus propias paginas personalizadas fuera de la fuente original (agregando esto en special:mypage/monobook.js etc), esto solo lo iciara si no existe ya.
var ticker_custompages = (ticker_custompages instanceof Array ? ticker_custompages : Array());
var ticker_custommsg = (ticker_custommsg instanceof Array ? ticker_custommsg : Array());
// Agrega estas lineas si quieres el ticker personalizado:
// ticker_custompages['Portal:PORTALNAME'] = 'Portal:PORTALNAME/Tickersource';
//Asegurate que /Tickersource se parezca a [[Usuario:CSTN/noticias]] usando DPLs
ticker_custompages['Portal:Football'] = 'Portal:Football/Tickersource';
ticker_custompages['Wikinews:Newsroom'] = 'Wikinews:Newsroom/Tickersource';
//Agrega mensajes personalizados a todas las paginas
ticker_custommsg['Portal:Football'] = 'Latest football stories';
ticker_custommsg['Wikinews:Newsroom'] = 'Stories in development';
function ticker_prepare(){
ticker_str_length=ticker_tl[0].length
var content = document.getElementById('showticker').innerHTML;
if(content != ""){
content += "<br/>\n";
}
var start = "Lo Ultimo";
if(ticker_custommsg[wgBasePageName]){
start = ticker_custommsg[wgBasePageName];
}
content += "<div id='ticker_start' style='font-weight: bold; font-size: 120%; display: inline;'>" + start + " <div style='font-size: smaller; display: inline;'>(<a href='" + mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + ticker_toload + "&action=purge'>todo</a>)</div>: </div><div id='ticker_content' style='font-size: 120%; font-color: blue; display: inline;'></div>";
document.getElementById('showticker').innerHTML = content;
}
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
wgBasePageName = wgPageName;
if(wgPageName.indexOf("/") != -1){
wgBasePageName = wgPageName.substring(0,wgPageName.indexOf("/"));
}
var ticker_toload = "";
function ticker_load(){
if (ticker_enabled == true) { // puedes ponerlo falso en el archivo personalizado
try{
var randomunusedtickervariable = document.getElementById('showticker').innerHTML;
}catch(err){
return;
}
ticker_toload = "Usuario:CSTN/noticias";
if(ticker_custompages[wgBasePageName]){
ticker_toload = ticker_custompages[wgBasePageName];
}
xmlhttp = sajax_init_object();
xmlhttp.overrideMimeType('text/xml');
xmlhttp.open( 'GET' , mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=' + ticker_toload + '&action=render', true);
xmlhttp.onload = function() {
//this.responseXML is the DOM
var entries = this.responseText.split("\n");
//window.alert(this.responseText);
for(var i = 0; i < entries.length; i++){
var val = entries[i];
if(val.indexOf("<li>") == 0 && val.indexOf("<a") != -1){
val = val.substring(val.indexOf("\">")+2, val.indexOf("</a>"));
ticker_tl[ticker_tl.length] = val;
}
}
ticker_prepare();
ticker_tick(false, true);
}
xmlhttp.send( null );
}
}
function ticker_tick(reset, first)
{
if(reset){
document.getElementById("ticker_content").innerHTML = "";
}
if(first){
ticker_index = Math.round(Math.random() * ticker_tl.length-1);
ticker_text_pos=0;
ticker_str_length=ticker_tl[ticker_index].length;
}
ticker_contents='';
ticker_row=Math.max(0,ticker_index-7);
//window.alert("TL: "+ticker_tl[ticker_index]);
document.getElementById("ticker_content").innerHTML = ("<a href=\"" + mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace("$1", escape(ticker_tl[ticker_index])) + "\" title=\"" + ticker_tl[ticker_index] + "\">" + ticker_tl[ticker_index].substring(0,ticker_text_pos) + "_</a>").replace("\n", "");
if(ticker_text_pos++>=ticker_str_length)
{
ticker_index++;
if(ticker_index!=ticker_tl.length)
{
ticker_text_pos=0;
ticker_str_length=ticker_tl[ticker_index].length;
if(first){
setTimeout("ticker_tick(true, false)",3);
}else{
setTimeout("ticker_tick(true, false)",7000);
}
}else{
ticker_index = Math.round(Math.random() * ticker_tl.length-1);
ticker_text_pos=ticker_tl[ticker_index].indexOf("\">");
ticker_str_length=ticker_tl[ticker_index].length;
setTimeout("ticker_tick(true, false)",3000);
}
} else
setTimeout("ticker_tick(false, false)",ticker_speed);
}
addLoadEvent(ticker_load);
function sajax_init_object() {
var A;
try {
// Try the new style before ActiveX so we don't
// unnecessarily trigger warnings in IE 7 when
// set to prompt about ActiveX usage
A = new XMLHttpRequest();
} catch (e) {
try {
A=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
A=new ActiveXObject("Microsoft.XMLHTTP");
} catch (oc) {
A=null;
}
}
}
return A;
}
}