« Utilisateur:Pinocchio/création commentaire image.js » : différence entre les versions
De BoyWiki
(m) |
(prise en compte des sections) |
||
Ligne 98 : | Ligne 98 : | ||
} | } | ||
// maj page commentaires des images | // maj page récapitule commentaires des images | ||
// détermine index alphabétique pour num section (+2 sections suppl. en haut de page) | |||
var alpha = toUpperCase(alphareplcorder.charAt(alphabeticorder.indexOf(imgnm[0].toLowerCase()))); | |||
if (alpha >=0 && alpha <=9) var nsec = 26 + 1 + 2; | |||
else var nsec = alpha.charCodeAt(0) - 64 + 2; | |||
pg = 'BoyWiki:Commentaires_des_images'; | pg = 'BoyWiki:Commentaires_des_images'; | ||
xhr_object.open('GET', '/w/index.php?title='+pg+'&action=edit', false); | xhr_object.open('GET', '/w/index.php?title='+pg+'§ion='+nsec+'&action=edit', false); | ||
xhr_object.send(''); | xhr_object.send(''); | ||
if (xhr_object.readyState != 4 || xhr_object.status != 200) { | if (xhr_object.readyState != 4 || xhr_object.status != 200) { | ||
Ligne 139 : | Ligne 145 : | ||
var boundary = '--------------23242526272829'; | var boundary = '--------------23242526272829'; | ||
var data = ''; | var data = ''; | ||
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n'; | data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n'+nsec+'\r\n'; | ||
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n'; | data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n'; | ||
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n'; | data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n'; |
Version du 9 janvier 2011 à 17:04
/* Formulaire création sous-pages Commentaires des images */
/* Lancé par bouton page BoyWiki:Commentaires des images */
/* creat. et maj lien page récapitul. */
function creatimgtxt_form() {
var ctnr = document.getElementById('creatimgtxt');
var contxt = '<fieldset><legend>Création nouvelle page commentaire</legend>';
contxt += '<form method="post" action="#" name="creat_imgtxt_frm">';
contxt += '<table border="0" align="center">';
contxt += '<tr><td class="tit">Nom de l’image</td><td><input name="imgnm" type="text" size="100%" /></td></tr>';
contxt += '<tr><td class="tit">Prénom et nom de l’artiste</td><td><input name="artnm" type="text" size="100%" /></td></tr>';
contxt += '<tr><td class="tit">Description</td><td><textarea name="dscr" style="width:100%; height:4em;"></textarea></td></tr>';
contxt += '<tr><td class="tit">Commentaire</td><td><textarea name="comt" style="width:100%; height:5em;"></textarea></td></tr>';
contxt += '<tr><td></td><td><input type="button" name="valid" value="Valider" onclick="creatimgtxt_exec()" /></td></tr>';
contxt += '</table></form></fieldset>';
ctnr.innerHTML = contxt;
}
/* Creation page */
function creatimgtxt_exec() {
// recup formulaire
var frm = document.forms['creat_imgtxt_frm'];
var imgnm = frm.elements['imgnm'].value;
imgnm = imgnm.replace(/^Image:/,'');
if (imgnm.length ==0) {
alert('Nom image incorrect');
return;
}
var artnm = frm.elements['artnm'].value;
var dscr = frm.elements['dscr'].value;
var comt = frm.elements['comt'].value;
// init objet requete serveur
var xhr_object = createxhrobject();
if (xhr_object == null) return;
// test si page existe deja
var pg = imgnm.replace(/&/g,'\%26');
pg = pg.replace(/\?/g,'\%3F');
pg = 'BoyWiki:Commentaires_des_images/'+pg;
xhr_object.open('GET', '/w/index.php?title='+pg+'&action=raw&ctype=text/plain', false);
xhr_object.send('');
if (xhr_object.readyState == 4 && xhr_object.status == 200) {
alert('Cette page existe déjà');
return;
}
// init contenu
var ident = Math.floor(8999999 * Math.random()) + 1000000;
var sspgcmt = '{{Image texte|id='+ident;
if (artnm.length >0) sspgcmt += '|artiste='+artnm;
if (dscr.length >0) sspgcmt += '|descr='+dscr;
sspgcmt += '|'+comt+'}}';
// création souspage comment
xhr_object.open('GET', '/w/index.php?title='+pg+'&action=edit', false);
xhr_object.send('');
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert('Erreur édition page '+pg);
return;
}
// récup variables edit
var pagedit = xhr_object.responseText.replace(/\n/g, '');
var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
var editoken = pagedit.match(/.{80}name="wpEditToken/i);
editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
var summary = 'Routine création commentaire image';
// init requete serveur - maj page édition
var boundary = '--------------23242526272829';
var data = '';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+sspgcmt+'\r\n';
data += '--'+boundary+'--\r\n';
xhr_object.open('POST', '/w/index.php?title='+pg+'&action=submit', false);
xhr_object.setRequestHeader("Charset", "utf-8");
xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
xhr_object.setRequestHeader("Content-Length", String(data.length));
xhr_object.send(data);
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert('Erreur écriture sous-page '+imgnm);
return;
}
// maj page récapitule commentaires des images
// détermine index alphabétique pour num section (+2 sections suppl. en haut de page)
var alpha = toUpperCase(alphareplcorder.charAt(alphabeticorder.indexOf(imgnm[0].toLowerCase())));
if (alpha >=0 && alpha <=9) var nsec = 26 + 1 + 2;
else var nsec = alpha.charCodeAt(0) - 64 + 2;
pg = 'BoyWiki:Commentaires_des_images';
xhr_object.open('GET', '/w/index.php?title='+pg+'§ion='+nsec+'&action=edit', false);
xhr_object.send('');
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert("Erreur edition page "+pg);
return;
}
// recup contenu
var pagedit = xhr_object.responseText.split(/<textarea[^>]*>|<\/textarea>/gi);
var pgdit = pagedit[1];
pgdit = pgdit.replace(/\n+$/,'');
pgdit = pgdit.replace(/</g, '<');
pgdit = pgdit.replace(/>/g, '>');
pgdit = pgdit.replace(/&/g, '&');
pgdit = pgdit.replace(/"/g, '"');
// init contenu ajouté
var pgaj = '\n';
pgaj += '[[Image:'+imgnm+'|100x100px|frameless|left]]\n';
pgaj += '<div style="float:right;">[[BoyWiki:Commentaires des images/'+imgnm+'|Page commentaire]]</div>\n';
pgaj += '{{Image commentée|'+imgnm+'}}\n';
pgaj += '{{Clr}}\n----';
// récup variables edit
pagedit = pagedit[0]+pagedit[2];
pagedit = pagedit.replace(/\n/g, '');
var startime = pagedit.match(/wpSection.*name="wpStarttime/i);
startime = startime[0].replace(/.*value="([0-9]+)" name="wpStarttime/i, '$1');
var editime = pagedit.match(/wpStarttime.*name="wpEdittime/i);
editime = editime[0].replace(/.*value="([0-9]+)" name="wpEdittime/i, '$1');
var editoken = pagedit.match(/.{80}name="wpEditToken/i);
editoken = editoken[0].replace(/.*value="([0-f+]+)" name="wpEditToken/i, '$1');
var autosummary = pagedit.match(/wpAutoSummary.{1,30}value="[^"]+"/i);
autosummary = autosummary[0].replace(/.*value="([0-f]+)"/i, '$1');
var summary = 'Routine création commentaire image';
/* init requete serveur - maj page oeuvre */
var boundary = '--------------23242526272829';
var data = '';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSection"\r\n\r\n'+nsec+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpScrolltop"\r\n\r\n0\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpStarttime"\r\n\r\n'+startime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEdittime"\r\n\r\n'+editime+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpEditToken"\r\n\r\n'+editoken+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSummary"\r\n\r\n'+summary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpAutoSummary"\r\n\r\n'+autosummary+'\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpSave"\r\n\r\nPublier\r\n';
data += '--'+boundary+'\r\nContent-Disposition: form-data; name="wpTextbox1"\r\n\r\n'+pgdit+pgaj+'\r\n';
data += '--'+boundary+'--\r\n';
xhr_object.open('POST', '/w/index.php?title='+pg+'&action=submit', false);
xhr_object.setRequestHeader("Charset", "utf-8");
xhr_object.setRequestHeader("Content-Type", "multipart/form-data; boundary="+boundary);
xhr_object.setRequestHeader("Content-Length", String(data.length));
xhr_object.send(data);
if (xhr_object.readyState != 4 || xhr_object.status != 200) {
alert('Erreur écriture page Commentaires des images');
return;
}
alert('Fin création');
}