BoyWiki:Etenne's Palaestra: Difference between revisions

From BoyWiki
No edit summary
No edit summary
Line 1: Line 1:
/* La première lecture du jour de la page Accueil de la veille
{| style="margin:0 3px 3px; width:100%; text-align:{{#ifexpr:300 >= 400|center|left}}; background-color:transparent; border-collapse: collapse; {{#ifexpr:300 >= 400|padding:0.9em|}}"
/* provoque son rafraichissement par purge du cache */
|{{#ifexpr:300 < 400|style="padding:0 0.9em 0 0;"|}}| {{#if:
 
  |{{wide image-noborder|Florida topographic map-en.svg|300px|4=550px|alt=Topographic map of Florida }}
function refresh_citation_du_jour() {
  |{{#if:
  // seulement pour page Accueil (tout utilisateur a visiblement le droit de puger le cache)
    |{{tall image|Florida topographic map-en.svg|300|alt=Topographic map of Florida }}
  if (wgPageName != 'Accueil') return;
    |[[File:Florida topographic map-en.svg|300px {{ #if:| {{!}} thumbtime={{{thumbtime}}} }}|Topographic map of Florida {{#if:|{{!}}link=File:{{{imagelink}}}|}}]]
  if (wgAction != 'view') return;
    }}
 
  }}
  // récup date dernière mise en cache de la page
{{#ifexpr:300 >= 400|
  var datecache = null;
{{!}}-
  var nodes = document.getElementById('bodyContent').childNodes;
{{!}}style="padding:0 0.9em 0.9em 0.9em;"{{!}}|{{!}}style="padding:0 6px 0 0"{{!}}
  for (var i=0; i < nodes.length ; i++) {
}}
      if (nodes[i].nodeName == '#comment' && nodes[i].data.match(/timestamp [0-9]{14}/)) {
{{#if:|<p style="font-size:150%; text-align:center;" class="plainlinks">[{{filepath:Florida topographic map-en.svg}} View the animation]</p>}}
        datecache = nodes[i].data.match(/timestamp ([0-9]{8})/);
A map showing the '''[[geography of Florida]]''', a [[U.S. state|state]] in the [[United States]]. Situated on a peninsula between the [[Gulf of Mexico]], the [[Atlantic Ocean]], and the [[Straits of Florida]], Florida has an extensive coastline. Its highest point, [[Britton Hill]], is the lowest highpoint of any U.S. state. Florida is home to over 19&nbsp;million people, living in [[List of municipalities in Florida|410&nbsp;municipalities]].
        break;
      }
  }
  if (datecache == null) return;
 
  // date actuelle locale
  var now = new Date();
  var datenow = formatdateyyyymmdd(now);
 
  if (datecache[1] < datenow) {
 
      // init objet requete serveur
      var xhr_object = createxhrobject();
      if (xhr_object == null) return;
 
      // init requete serveur - purge cache pour page Accueil
      xhr_object.open('POST', '/wiki/Accueil', true);
      xhr_object.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xhr_object.setRequestHeader("Charset", "utf-8");
      // action sur fin requete async
      //xhr_object.onreadystatechange = function() {
      //  if (xhr_object.readyState == 4)  alert(xhr_object.status);
      //}
      xhr_object.send('action=purge');
  }
}
 
 
addOnloadHook(refresh_citation_du_jour);
 
 
 
/* Retourne la date formatée yyyymmdd */
 
function formatdateyyyymmdd(obj) {
  var yer = obj.getFullYear();
  var mon = (obj.getMonth() + 1);
  var day = obj.getDate();
  if (mon < 10) mon = '0'+mon;
  if (day < 10) day = '0'+day;
  return yer.toString()+mon.toString()+day.toString();
}
 
 
 
 
/* Affecte un identifiant à chaque citation utilisant le modèle Extrait
/* une seule fois au moment de sa création
/* utilisé pour sélection aléatoire citation du jour
/* lancé par submit */
 
function ident_citation_du_jour() {
  // contenu zone édition
  if (document.forms['editform'].elements['wpTextbox1'] == undefined) return true;
  // seulement les pages articles de l'espace principal (ns0)
  if (wgNamespaceNumber != 0) return true;
  var content = document.forms['editform'].elements['wpTextbox1'].value;
 
  // recherche chaines modèles {{Extrait}}
  var content = content.split(/\{\{[Ee]xtrait\|/g);
  if (content == null) return;
 
  // copie texte zone edit avant premier {{extrait}}
  var buf = content[0];
  // pour tout les modèles trouvés
  for (var m = 1; m < content.length ; m++) {
      // recherche fin modèle (parenthèses fermeture) - extraction contenu
      var open = 1;
      var close = 0;
      for (var i = 0; i < content[m].length ; i++) {
        if (content[m][i] == '{' && content[m][i+1] == '{') {open++; i++;}
        if (content[m][i] == '}' && content[m][i+1] == '}') {close++; i++;}
        if (open == close) break;
      }
      var submodl = content[m].substr(0,i-1);
 
      // controle args (si id déjà affecté ou cdj=non)
      if (! submodl.match(/^id=[0-9]{6,9}\||^ ?cdj=non ?\|/)) {
        // génére nombre aléatoire entre 1000000 et 9999999
        var rdm = Math.floor(8999999 * Math.random()) + 1000000;
        // recrée syntaxe modèle avec id
        var tmp = '{{Extrait|id='+rdm+'|'+submodl+'}}';
      } else {
        // recrée modèle orig
        var tmp = '{{Extrait|'+submodl+'}}';
      }
      // ajoute contenu modèle + texte restant après fin modèle
      buf += tmp;
      buf += content[m].substr(i+1);
  }
 
  // insertion modifs dans zone edit
  document.forms['editform'].elements['wpTextbox1'].value = buf;
}
 
 
 
/* Affecte un identifiant à chaque commentaire d'image utilisant le modèle {{Image texte}}
/* une seule fois au moment de sa création
/* utilisé pour sélection aléatoire image du jour
/* lancé par submit */
 
function ident_image_du_jour() {
  if (document.forms['editform'].elements['wpTextbox1'] == undefined) return true;
  // seulement les pages commentaires images
  if (! wgPageName.match(/BoyWiki:Commentaires_des_images/)) return true;
  // contenu zone édition
  var content = document.forms['editform'].elements['wpTextbox1'].value;
 
  // recherche chaines modèles {{Image texte}}
  var content = content.split(/\{\{[Ii]mage texte\|/g);
  if (content == null) return;
 
  // copie texte zone edit avant premier {{Image texte}}
  var buf = content[0];
  // pour tout les modèles trouvés
  for (var m = 1; m < content.length ; m++) {
      // recherche fin modèle (parenthèses fermeture) - extraction contenu
      var open = 1;
      var close = 0;
      for (var i = 0; i < content[m].length ; i++) {
        if (content[m][i] == '{' && content[m][i+1] == '{') {open++; i++;}
        if (content[m][i] == '}' && content[m][i+1] == '}') {close++; i++;}
        if (open == close) break;
      }
      var submodl = content[m].substr(0,i-1);
 
      // controle args (si id déjà affecté ou idj=non)
      if (! submodl.match(/^id=[0-9]{6,9}\||^ ?idj=non ?\|/)) {
        // génére nombre aléatoire entre 1000000 et 9999999
        var rdm = Math.floor(8999999 * Math.random()) + 1000000;
        // recrée syntaxe modèle avec id
        var tmp = '{{Image texte|id='+rdm+'|'+submodl+'}}';
      } else {
        // recrée modèle orig
        var tmp = '{{Image texte|'+submodl+'}}';
      }
      // ajoute contenu modèle + texte restant après fin modèle
      buf += tmp;
      buf += content[m].substr(i+1);
  }
 
  // insertion modifs dans zone edit
  document.forms['editform'].elements['wpTextbox1'].value = buf;
}
 
 
 
 
/* Prépare lots de citations et images pour les jours suivants
/* Création page de lancement manuel */
 
function prepare_citation_du_jour() {
// seulement pour page Accueil/Prépare et utilisateur ayant droit écriture dans sous-page Accueil
  if (wgPageName != 'BoyWiki:Accueil/Citation_du_jour_Prepare') return;
  if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|fsc|bureaucrat/) == null) return;
  if (wgAction != 'view') return;
 
  // créat div déroulement procédure
  var progressop = document.createElement('div');
  progressop.setAttribute('id', 'progress_op');
  progressop.style.textAlign = 'center';
  // ajout boutons lancement
  progressop.innerHTML = '<button type="button" style="margin:20px;" value="" onclick="prepare_cdj_idj_load(\'c\')" />Citations</button>';
  progressop.innerHTML += '<button type="button" style="margin:20px;" value="" onclick="prepare_cdj_idj_load(\'i\')" />Images</button>';
  document.getElementById('bodyContent').appendChild(progressop);
}
 
addOnloadHook(prepare_citation_du_jour);
 
 
/* suite lancée par action boutons */
 
/* Chargement de la page code avant exec */
function prepare_cdj_idj_load(q) {
  importScript('Utilisateur:Pinocchio/citations_images_du_jour.js');
  setTimeout(function() {prepare_cdj_idj_load_wait(q);},500);
}
 
/* Attente fin chargement avant exec */
function prepare_cdj_idj_load_wait(q) {
  if (typeof(getabcitationperpage) == 'function') {
      switch(q){
        case 'c': prepare_cdj_exec(); break;
        case 'i': prepare_idj_exec(); break;
      }
  }
  else var x = setTimeout(function() {prepare_cdj_idj_load_wait(q);},500);
}
 
 
/************************/
 
/* Bouton création sous-pages Commentaires des images */
 
function creatimgtxt_start() {
  /* seulement pour page commentaires des images et utilisateur ayant droit écriture */
  if (wgPageName != 'BoyWiki:Commentaires_des_images') return;
  if (wgUserGroups == null || wgUserGroups.join(" ").match(/scribe|sysop|fsc|bureaucrat/) == null) return;
  if (wgAction != 'view') return;
 
  // affiche bouton lancement
  var ctnr = document.getElementById('creatimgtxt');
  var contxt = '<button type="button" style="margin:20px;" value="" onclick="creatimgtxt_load()" />Créer une nouvelle sous-page commentaire</button>';
  ctnr.innerHTML = contxt;
}
 
addOnloadHook(creatimgtxt_start);
 
 
/* suite lancée par action bouton */
 
/* Chargement de la page code avant */
function creatimgtxt_load() {
  importScript('Utilisateur:Pinocchio/création_commentaire_image.js');
  setTimeout("creatimgtxt_load_wait()",500);
}
 
/* Attente fin chargement code */
function creatimgtxt_load_wait() {
  if (typeof(creatimgtxt_exec) != 'function') setTimeout("creatimgtxt_load_wait()",500);
  else creatimgtxt_form();
}

Revision as of 12:08, 3 March 2013

Topographic map of Florida

A map showing the geography of Florida, a state in the United States. Situated on a peninsula between the Gulf of Mexico, the Atlantic Ocean, and the Straits of Florida, Florida has an extensive coastline. Its highest point, Britton Hill, is the lowest highpoint of any U.S. state. Florida is home to over 19 million people, living in 410 municipalities.