« Utilisateur:Pinocchio/création commentaire image.js » : différence entre les versions
De BoyWiki
(code création sous-page commentaire) |
(m) |
||
Ligne 1 : | Ligne 1 : | ||
/* Formulaire création sous-pages Commentaires des images */ | /* Formulaire création sous-pages Commentaires des images */ | ||
/* Lancé par bouton page BoyWiki:Commentaires des images */ | /* Lancé par bouton page BoyWiki:Commentaires des images */ | ||
Ligne 10 : | Ligne 9 : | ||
contxt += '<table border="0" align="center">'; | 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">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=" | 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">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 class="tit">Commentaire</td><td><textarea name="comt" style="width:100%; height:5em;"></textarea></td></tr>'; |
Version du 7 janvier 2011 à 13:12
/* 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 sspgcmt = '{{Image texte|id='+Math.floor(8999999 * Math.random()) + 1000000;
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 référence biblio.';
// 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='+x+'&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 commentaires des images
pg = 'BoyWiki:Commentaires_des_images';
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 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 référence biblio.';
/* init requete serveur - maj page oeuvre */
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'+pgdit+pgaj+'\r\n';
data += '--'+boundary+'--\r\n';
xhr_object.open('POST', '/w/index.php?title='+x+'&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');
}