Modèle:Articles manquants/Documentation
Modèle:Documentation modèle vue directement /*
Fonctions
Ce modèle est destiné à créer un tableau triable à partir des pages d'une catégorie (typiquement Portail:TRUC/Articles liés, mais cela peut être n'importe quelle catégorie). Le tableau est inséré entre les modèles {{Articles manquants}} et {{Articles manquants fin}} dans un cadre défilant à la hauteur paramétrable pour faciliter l'inclusion dans un cadre de portail ou de projet.
Un code javascript permet de mettre à jour le tableau de façon automatisée.
Paramètres
- {[[pageportail}}} : Titre de la page à mettre à jour par le script (obligatoire)
- {{{catégorie}}} : catégorie à checker ( catégorie:Portail:TRUC/Articles liés ) (obligatoire)
- {{{defilant}}} : mettre « non » pour annuler le cadre défilant (facultatif).
- {{{hauteur}}} : hauteur du cadre défilant créé, en pixels (facultatif : 250px par défaut)
Exemples
L'exemple ci-dessous est celui d'un modèle avec comme instructions pour le script de vérifier la catégorie Catégorie:Portail:Colombie/Articles liés, d'extraire les liens rouges de chaque page, puis de créer et d'apposer (ou mettre à jour) deux tableaux triables sur la page Projet:Colombie/Articles à créer. Les tableaux seront insérés entre leurs balises de commentaires respectives.
{{Articles manquants |pageportail=Projet:Colombie/Articles à créer |catégorie=Catégorie:Portail:Colombie/Articles liés |hauteur=300 }} <!-- Ce tableau est créé automatiquement par un robot. Articles Manquants DEBUT --> <!-- Ce tableau est créé automatiquement par un robot. Articles Manquants FIN --> {{Articles manquants fin}} {{Articles manquants |pageportail=Projet:Colombie/Articles à créer |catégorie=Catégorie:Portail:Colombie/Articles liés |hauteur=300 }} <!-- Ce tableau est créé automatiquement par un robot. Pages Rouges DEBUT --> <!-- Ce tableau est créé automatiquement par un robot. Pages Rouges FIN --> {{Articles manquants fin}}
Il est tout à fait possible de créer ces tableaux sans forcément ajouter le modèle (et le cadre défilant qui va avec) dans la page à modifier, mais il reste nécessaire d'ajouter le modèle correctement paramétré sur une page quelconque pour avoir accès au lien de mise à jour. En d'autres termes, le modèle et le tableau créé sont parfaitement dissociables. Par contre, les commentaires sont importants car ce sont eux que le script recherche pour détecter le début et la fin du tableau lors de sa mise à jour. S'il ne les trouve pas, le script ajoutera le tableau et le modèle (pour la mise à jour) au début de la page.
Mise à jour

La mise à jour se fait à l'aide d'un code javascript dont le fonctionnement s'apparente à celui d'un bot. Il est à copier dans sa page monobook.js (ou autre suivant l'habillage choisi) .
L'utilisation du script permet l'affichage d'un lien au-dessus du tableau qui lance le processus de mise à jour :
- Un "tableau de bord" apparaît et deux pop-up successives permettent de commander le début de la mise à jour :
- La première récapitule les paramètres du futur tableau. Il est possible d'annuler ou de poursuivre.
- La deuxième permet de choisir le renouvellement automatique du processus. Cliquer OK pour lancer en mode automatique, annuler pour une mise à jour simple (dans ce cas, une pop-up de confirmation apparaît avant la sauvegarde).
- La troisième récapitule les paramètres du futur tableau. Il est possible d'annuler ou de poursuivre. A partir de là, le script tourne tout seul. Si le mode automatique est activé, il recommencera le processus indéfiniment sans autre intéraction, sinon une pop-up apparaît au moment de publier la page. Cliquer OK pour publier, annuler pour ne pas publier. Le tableau dans la fenêtre de modification est mis à jour, il est ainsi possible de retoucher la modification avant de publier "manuellement".
Remarques
- A tout moment, un gros bouton rouge permet de recharger la page et ainsi d'arrêter le processus de mise à jour.
- Lors de l'analyse de la catégorie, s'il y a plusieurs pages à analyser, ou si une page est longue et contient beaucoup de liens à vérifier, il peut arriver que le navigateur détecte un script qui ne répond plus, il faut alors lui préciser de le laisser continuer.
- Script testé avec Firefox uniquement.
- Script indifférent à l'habillage utilisé
Voir aussi
Code JavaScript
- Durée : environ 10 minutes pour 600 pages [1]
var ModeleManquantsDefautDebut = '{{Articles manquants\n'
+ '|pageportail=$1\n'
+ '|catégorie=$2\n'
+ '|hauteur=\n'
+ '|intro=\n'
+ '}}\n'
var RedPages_DebutModele = '<!-- Ce tableau est créé automatiquement par un robot. Pages Rouges DEBUT -->\n';
var RedPages_FinModele = '<!-- Ce tableau est créé automatiquement par un robot. Pages Rouges FIN -->\n'
var WantedPages_DebutModele = '<!-- Ce tableau est créé automatiquement par un robot. Articles Manquants DEBUT -->\n';
var WantedPages_DebutTableauTriable = '{| class="sortable" align="center"\n'
var WantedPages_FinModele = '<!-- Ce tableau est créé automatiquement par un robot. Articles Manquants FIN -->\n'
var WantedPages_ModeleDefautFin = '{{Articles manquants fin}}\n';
var WantedPages_ResumeModif = 'Mise à jour du modèle {{Articles manquants}}';
var WantedPages_Minimum = 1;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var Adresse = wgServer + wgScript + "?title=";
if( (wgAction!="edit")&&(wgAction!="submit") ){
addOnloadHook(initCategoryWantedPages);
}
// recherche des modèles {{Articles récents}} de la page et ajout des liens de mise à jour
var WantedPagesAnalysisDivCount = 0;
function initCategoryWantedPages(){
var Cadres = document.getElementsByTagName('div');
for(s=0;s<Cadres.length;s++){
if( hasClass(Cadres[s], 'categoryWantedPages') ){
WantedPagesAnalysisDivCount++
Cadres[s].id = 'categoryWantedPages_'+WantedPagesAnalysisDivCount;
var ParamCategorie = Cadres[s].firstChild.innerHTML;
var ParamPage = Cadres[s].firstChild.title;
var ParamPortail = "Portail:" + Cadres[s].firstChild.className.replace(/_/g," ");
var NewButton = '<a href="javascript:doWantedPagesAnalisys(\'categoryWantedPages_'
+WantedPagesAnalysisDivCount+ '\');" title="Cliquer pour mettre à jour l\'analyse de la catégorie ' + ParamCategorie + ' sur la page '+ParamPage+'" >Mettre à jour les tableaux Liens Rouges</a>' ;
Cadres[s].innerHTML += NewButton ;
}
}
}
// vérifie les paramètres du modèle {{Articles récents}} cliqué et crée le tableau de bord
var WantedPages_Categorie; // Catégorie à analyser
var WantedPages_PagePortai; // Page à éditer
var WantedPages_Informations; // Tableau de bord : cadre informations
var WantedPages_BoutonCancel; // Tableau de bord : cadre bouton pour annuler
var WantedPages_PageCible; // Tableau de bord : cadre affichage de la page ciblée
var WantedPages_PageRequete; // Tableau de bord : cadre affichage des requêtes
var WantedPages_ListeArticles; // Tableau de bord : liste des articles de la catégorie
var WantedPages_AutoProcess= false; // Fonctionnement en boucle (dès qu'il a fini, le script recommence).
function doWantedPagesAnalisys(id){
if(!id) return;
var Cadre = document.getElementById(id);
var Bouton = Cadre.firstChild;
WantedPages_Categorie = Bouton.innerHTML;
WantedPages_PagePortail = Bouton.title;
if( (WantedPages_Categorie=='')||(WantedPages_PagePortail=='') ) return;
window.scrollTo(0,0); void 0;
var TableauDeBord = document.createElement('div');
TableauDeBord.id = 'Tableau_de_bord';
TableauDeBord.innerHTML = ''
+ '<div style="position:absolute;top:0px;left:0px;width:800px;height:40px;padding:5px;font-weight:bold;background-color:white;border:3px double black;" ><ul id="Informations" ></ul></div>'
+ '<div id="Bouton_Cancel" style="position:absolute;top:0px;left:820px;width:400px;height:40px;padding:5px;font-weight:bold;background-color:white;border:3px double black;text-align:center;" ></div>'
+ '<div id="Page_cible" style="position:absolute;top:60px;left:0px;width:800px;height:800px;overflow:scroll;padding: 0.5em;background-color:white;border:3px double black;" ></div>'
+ '<div id="Page_requete" style="position:absolute;top:880px;left:0px;width:800px;height:800px;overflow:scroll;padding: 0.5em;background-color:white;border:3px double black;" ></div>'
+ '<div style="position:absolute;top:60px;left:820px;height:1620px;overflow-y: auto;width:400px; padding: 0.5em;background-color:white;border:3px double black;" >'
+ '<center>Pages de la catégorie <b>'+WantedPages_Categorie.replace(/Catégorie:/g,'')+'</b></center><hr size="1" style="margin:0.5em;" /><ul id="Liste_Articles"></ul></div>';
document.body.appendChild(TableauDeBord);
TableauDeBord.style.position = 'absolute';
TableauDeBord.style.zIndex = '150';
TableauDeBord.style.top = '20px';
TableauDeBord.style.left = '20px';
WantedPages_Informations = document.getElementById("Informations");
WantedPages_BoutonCancel = document.getElementById("Bouton_Cancel");
WantedPages_PageRequete = document.getElementById("Page_requete");
WantedPages_PageCible = document.getElementById("Page_cible");
WantedPages_ListeArticles = document.getElementById("Liste_Articles");
if( (!WantedPages_PageCible)||(!WantedPages_BoutonCancel)||(!WantedPages_ListeArticles)||(!WantedPages_PageRequete) ){
return;
}else{
WantedPages_BoutonCancel.innerHTML = '<a href="'+Adresse + encodeURIComponent(wgPageName)+'"title="Arrêter la mise à jour" >'
+'<img src="/media/wikipedia/commons/0/0c/Crystal_Clear_action_exit.png" height="40" width="40" /></a>';
var ajaxRequest = sajax_init_object();
if (!ajaxRequest){
alert('Méthode ajax non supportée : sajax_init_object()');
return;
}else{
var url = Adresse + decodeURIComponent(WantedPages_PagePortail).replace(/ /g, "_").replace(/%3A/g, ":").replace(/%2F/g, "/").replace(/%27/g, "\'")+ '&action=render' ;
WantedPages_Informations.innerHTML = '<li>Requête ajax de la page à éditer : '+WantedPages_PagePortail+'</li><li>' + url + '</li>';
ajaxRequest.open("GET", url, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
var ajaxResponse;
ajaxResponse = ajaxRequest.responseText;
WantedPages_PageCible.innerHTML = ajaxResponse;
var Minimum = prompt('Ne pas comptabiliser lorsque le nombre d\'occurrences est inférieur à ', WantedPages_Minimum);
if( (Minimum!=null)&&(Minimum!='') ) WantedPages_Minimum = Minimum;
WantedPages_AutoProcess = confirm('Activer le renouvellement automatique du processus de mise à jour ?');
if(WantedPages_AutoProcess){ var Mode = "automatique"; }else{var Mode = "manuel";}
var Suretcertain = confirm('Paramètres :'
+ '\n* Page à mettre à jour : - ' + WantedPages_PagePortail + ' - '
+ '\n* Catégorie : - ' + WantedPages_Categorie + ' - '
+ '\n* Limite inférieure : - ' + WantedPages_Minimum + ' - '
+ '\n* Renouvellement : - ' + Mode + ' - '
+ '\n\n Lancer la mise à jour ?' );
if(!Suretcertain) return;
doCategoryWantedPagesAnalisys(Adresse + encodeURIComponent(WantedPages_Categorie) + '&action=render');
}
}
}
}
}
// analyse la catégorie : requête ajax, recopie des liens dans une colonne du tableau de bord, renouvellement si il y a d'autres pages puis lancement de la fonction analyse d'historique
var WantedPages_PagesCategorieCible = 1;
var WantedPages_TotalArticles = 0;
function doCategoryWantedPagesAnalisys(Cible){
var AutrePage=false;
var AutrePageAdresse ='';
WantedPages_PageRequete.innerHTML = '';
var ajaxRequest = sajax_init_object();
if (!ajaxRequest){
alert('Méthode ajax non supportée : sajax_init_object()');
return;
}else{
var url = decodeURIComponent(Cible).replace(/ /g, "_").replace(/%3A/g, ":").replace(/%2F/g, "/").replace(/%27/g, "\'") ;
WantedPages_Informations.innerHTML = '<li>Requête ajax de la catégorie : page '+WantedPages_PagesCategorieCible+'</li><li>' + url + '</li>';
ajaxRequest.open("GET", url, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
var ajaxResponse;
ajaxResponse = ajaxRequest.responseText;
WantedPages_PageRequete.innerHTML = ajaxResponse;
var ContenuCategorie = getElementWithId(WantedPages_PageRequete, 'div', 'mw-pages');
var LiensCategorie = ContenuCategorie.getElementsByTagName('li');
for(a=0;a<LiensCategorie.length;a++){
PageCibleCategory = LiensCategorie[a].innerHTML;
WantedPages_ListeArticles.innerHTML += '<li>' + PageCibleCategory + '</li>';
WantedPages_TotalArticles++
}
WantedPages_Informations.innerHTML = 'Recherche de page supplémentaires';
var TousLiens = WantedPages_PageRequete.getElementsByTagName('a');
var length = TousLiens.length;
var dernierLien = TousLiens[(length-1)].href;
if(dernierLien.indexOf("&from=")!=-1){
AutrePage = true;
WantedPages_PagesCategorieCible++
AutrePageAdresse = dernierLien + '&action=render';
}
if(AutrePage==true){
doCategoryWantedPagesAnalisys(AutrePageAdresse)
}else{
initWantedPagesAnalisys( 0, WantedPages_TotalArticles)
}
}
}
}
}
// analyse de chaque page : requête ajax, recopie les liens rouges dans le tableau de bord sous chaque lien de page puis lancement de la fonction d'édition
var WantedPagesChecked = 0;
var WantedPagesAnalisysResult = new Array();
var RedPagesChecked = -1;
var RedPagesAnalisysResult = new Array();
function initWantedPagesAnalisys(Position, TotalArticles){
RedPagesRedLinkCount = 0;
var Lien = WantedPages_ListeArticles.getElementsByTagName('a')[Position];
if(!Lien) {
initEditWantedPagesTableau();
}
LiParent = Lien.parentNode;
TitrePage = Lien.innerHTML.replace(/&/, "&");
WantedPages_PageRequete.innerHTML = '';
var ajaxRequest = sajax_init_object();
if (!ajaxRequest){
alert('Méthode ajax non supportée : sajax_init_object()');
return;
}else{
var url = Adresse + decodeURIComponent(TitrePage).replace(/ /g, "_").replace(/%3A/g, ":").replace(/%2F/g, "/").replace(/%27/g, "\'").replace(/&/g, "%26") + '&action=render';
WantedPages_Informations.innerHTML = '<li>Requête ajax de la page : ' + Position + ' sur ' + TotalArticles + '</li><li>' + url + '</li>';
ajaxRequest.open("GET", url, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
var ajaxResponse;
ajaxResponse = ajaxRequest.responseText;
WantedPages_PageRequete.innerHTML = ajaxResponse;
var TousLiens = WantedPages_PageRequete.getElementsByTagName('a');
for(a=0;a<TousLiens.length;a++){
if( hasClass(TousLiens[a], "new") || (TousLiens[a].title.indexOf("(page inexistante)")!=-1) || (TousLiens[a].href.indexOf("&redlink=1")!=-1) ){
var WantedPageLink = TousLiens[a];
var WantedPageLinkTitle = WantedPageLink.title.split(' (page inexistante)').join('');
if(WantedPageLinkTitle.indexOf(wgFormattedNamespaces[11])==-1){
WantedPagesAnalisysResult[WantedPagesChecked] = '\n'
+ '|-\n'
+ '| \'\'$1 [[Special:Whatlinkshere/'+WantedPageLinkTitle+'|liens]]\'\'\n'
+ '| [['+WantedPageLinkTitle+']]' ;
LiParent.innerHTML = LiParent.innerHTML + ' • <span style="color:red;" >' + WantedPageLinkTitle + '</span>';
if(RedPagesRedLinkCount==0){
RedPagesChecked++
RedPagesAnalisysResult[RedPagesChecked] = '|-\n| valign="top" | [[' + TitrePage + ']]\n| align="left" |\n';
}
if(RedPagesRedLinkCount>=0){
RedPagesAnalisysResult[RedPagesChecked] += '# [[' + WantedPageLinkTitle + ']]\n';
}
WantedPagesChecked++
RedPagesRedLinkCount++
}
}
}
initWantedPagesAnalisys((Position+1), TotalArticles);
}
}
}
}
// édition de la page : cherche la présence d'un tableau précédent, crée un tableau et remplace le tableau existant
var WantedPages_ModeleDefautDebut = '{{Articles manquants\n'
+ '|pageportail=$1\n'
+ '|catégorie=$2\n'
+ '|hauteur=\n'
+ '|intro=\n'
+ '}}\n'
var WantedPages_DebutTableauTriable = '{| class="sortable" align="center"\n'
var WantedPages_ModeleDefautFin = '{{Articles manquants fin}}\n';
var WantedPages_ResumeModif = 'Mise à jour du modèle {{Articles manquants}}';
var RedPages_DebutModele = '<!-- Ce tableau est créé automatiquement par un robot. Pages Rouges DEBUT -->\n';
var RedPages_FinModele = '<!-- Ce tableau est créé automatiquement par un robot. Pages Rouges FIN -->\n'
var WantedPages_DebutModele = '<!-- Ce tableau est créé automatiquement par un robot. Articles Manquants DEBUT -->\n';
var WantedPages_FinModele = '<!-- Ce tableau est créé automatiquement par un robot. Articles Manquants FIN -->\n'
function initEditWantedPagesTableau(){
WantedPages_PageRequete.innerHTML = '';
var ajaxRequest = sajax_init_object();
if (!ajaxRequest){
alert('Méthode ajax non supportée : sajax_init_object()');
return;
}else{
url = Adresse + decodeURIComponent(WantedPages_PagePortail).replace(/ /g, "_").replace(/%3A/g, ":").replace(/%2F/g, "/").replace(/%27/g, "\'").replace(/&/g, "%26") + '&action=edit';
WantedPages_Informations.innerHTML = '<li>Édition de la page : ' + WantedPages_PagePortail + '</li><li>' + url + '</li>';
ajaxRequest.open("GET", url, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
var ajaxResponse;
ajaxResponse = ajaxRequest.responseText;
WantedPages_PageRequete.innerHTML = ajaxResponse;
var Aujourdhui = new Date();
var Minutes = Aujourdhui.getMinutes()
if(Minutes<10){ var ZeroMinutes = "0" ; }else{ var ZeroMinutes = "";}
var Heures = Aujourdhui.getHours()
if(Heures<10){ var ZeroHeures = "0" ; }else{ var ZeroHeures = "";}
var Jour = Aujourdhui.getDate();
if(Jour<10){ var ZeroJour = "0" ; }else{ var ZeroJour = "";}
var Mois = Aujourdhui.getMonth() + 1;
if(Mois<10){ var ZeroMois = "0" ; }else{ var ZeroMois = "";}
var Annee = Aujourdhui.getYear();
if (Annee < 2000){
Annee = Annee + 1900;
}
var TitreHaut = '\'\'Tableau [[Modèle:Articles manquants/Documentation|mis à jour]] le ' + ZeroJour + Jour + '/' + ZeroMois + Mois + '/' + Annee + ' à ' + ZeroHeures + Heures + ':' + ZeroMinutes + Minutes + '\'\'\n';
var TitreBas = '\'\'Catégorie : \'\'\'[[:'+WantedPages_Categorie+'|'+WantedPages_Categorie.split('Catégorie:').join('')+']]\'\'\' - Tableau [[Modèle:Articles récents/Documentation|mis à jour]] le ' + ZeroJour + Jour + '/' + ZeroMois + Mois + '/' + Annee + ' à ' + ZeroHeures + Heures + ':' + ZeroMinutes + Minutes + '\'\'\n';
var TableauTriable = WantedPages_DebutTableauTriable
+ '|+ ' + TitreHaut
+ '|-\n';
TableauTriable += '! Occurences\n';
TableauTriable += '! Page';
var MemePage = 1;
WantedPagesAnalisysResult = WantedPagesAnalisysResult.sort();
for(a=0;a<WantedPagesAnalisysResult.length;a++){
if(WantedPagesAnalisysResult[a]==WantedPagesAnalisysResult[(a+1)]){
MemePage++
WantedPagesAnalisysResult[a] = false;
}else{
if(MemePage<WantedPages_Minimum){
WantedPagesAnalisysResult[a] = false;
}else{
var zeroPage = ""
if(MemePage<1000)zeroPage += "0";
if(MemePage<100)zeroPage += "0";
if(MemePage<10)zeroPage += "0";
WantedPagesAnalisysResult[a] = WantedPagesAnalisysResult[a].split('$1').join(zeroPage + MemePage);
if(MemePage<2) WantedPagesAnalisysResult[a] = WantedPagesAnalisysResult[a].split('liens').join('lien');
}
MemePage = 1;
}
}
var RangeesTableau = WantedPagesAnalisysResult.sort();
var fincount = (RangeesTableau.length-1);
for(a=fincount;a>0;a--){
if(RangeesTableau[a]!=false){
TableauTriable += RangeesTableau[a];
}
}
TableauTriable += '\n|-\n'
+ '|+ ' + TitreBas
+ '|}\n';
var TableauComplet = WantedPages_DebutModele+TableauTriable+WantedPages_FinModele;
//alert(TableauComplet);
var TableauTriableRedPages = WantedPages_DebutTableauTriable
+ '|+ ' + TitreHaut
+ '|-\n'
+ '! Page\n'
+ '! Liens rouges\n'
+ '|-';
for(a=0;a<RedPagesAnalisysResult.length;a++){
TableauTriableRedPages += RedPagesAnalisysResult[a];
}
TableauTriableRedPages += '\n|-\n'
+ '|+ ' + TitreBas
+ '|}\n';
var TableauCompletRedPages = RedPages_DebutModele+TableauTriableRedPages +RedPages_FinModele;
//alert(TableauCompletRedPages);
WantedPages_ModeleDefautDebut = WantedPages_ModeleDefautDebut.split('$1').join(WantedPages_PagePortail);
WantedPages_ModeleDefautDebut= WantedPages_ModeleDefautDebut.split('$2').join(WantedPages_Categorie);
//alert(WantedPages_ModeleDefautDebut);
var ContenuPage = document.getElementById("wpTextbox1").value;
var AncienResumeModif = document.editform.wpSummary.value;
if( (ContenuPage.indexOf(WantedPages_DebutModele)!=-1)&&(ContenuPage.indexOf(WantedPages_FinModele)!=-1) ){ // ----------------- Déja le modèle : remplacement tableau
debutTexte = ContenuPage.substring(0, ContenuPage.indexOf(WantedPages_DebutModele));
AncienModele = ContenuPage.substring(0, ContenuPage.indexOf(WantedPages_FinModele)) + WantedPages_FinModele;
AncienModele = AncienModele.replace(debutTexte, "");
finTexte = ContenuPage.split(debutTexte).join('').split(AncienModele).join('');
var TexteFinal = debutTexte + TableauComplet + finTexte;
}else{ // ------------------------------------------------Pas de modèle : ajout modèle + tableau
var TexteFinal = WantedPages_ModeleDefautDebut + TableauComplet + WantedPages_ModeleDefautFin + ContenuPage;
}
if( (TexteFinal.indexOf(RedPages_DebutModele)!=-1)&&(TexteFinal.indexOf(RedPages_FinModele)!=-1) ){ // ----------------- Déja le modèle : remplacement tableau
var newdebutTexte = TexteFinal.substring(0, TexteFinal.indexOf(RedPages_DebutModele));
var newAncienModele = TexteFinal.substring(0, TexteFinal.indexOf(RedPages_FinModele)) + RedPages_FinModele;
newAncienModele = newAncienModele.replace(newdebutTexte, "");
var newfinTexte = TexteFinal.split(newdebutTexte).join('').split(newAncienModele).join('');
TexteFinal = newdebutTexte + TableauCompletRedPages + newfinTexte;
}else{ // ------------------------------------------------Pas de modèle : ajout modèle + tableau
var TexteFinal = WantedPages_ModeleDefautDebut + TableauCompletRedPages + WantedPages_ModeleDefautFin + TexteFinal;
}
document.getElementById ("wpTextbox1").value = TexteFinal ;
document.editform.wpSummary.value = AncienResumeModif + WantedPages_ResumeModif ;
if(WantedPages_AutoProcess==false){
var SurEtCertain = confirm('Sauvegarder la modification ?');
if(SurEtCertain) document.editform.submit();
}else{
var action = document.getElementById ("editform").action;
WantedPages_Informations.innerHTML = '<li>Sauvegarde de la page : ' + WantedPages_PagePortail + '</li><li>' + decodeURIComponent(action) +'</li>';
var boundary = '--------123xyz';
var data = '';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + document.editform.wpSummary.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
var ajaxSubmit = sajax_init_object();
ajaxSubmit.open('POST', action, true);
ajaxSubmit.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
ajaxSubmit.send(data + '--' + boundary);
ajaxSubmit.onreadystatechange = function(){
if (ajaxSubmit.readyState == 4){
var ajaxResponse;
ajaxResponse = ajaxSubmit.responseText;
WantedPages_PageCible.innerHTML = ajaxResponse;
cleanContent(WantedPages_PageCible);
WantedPages_Informations.innerHTML = '<li>Page '+WantedPages_PagePortail+' sauvegardée avec succès.</li>';
WantedPages_PageRequete.innerHTML = '';
WantedPages_ListeArticles.innerHTML = '';
WantedPages_PagesCategorieCible = 1;
WantedPagesChecked = 0;
RedPagesChecked = -1;
WantedPages_PagesCategorieCible = 1;
WantedPages_TotalArticles = 0;
doCategoryWantedPagesAnalisys(Adresse + encodeURIComponent(WantedPages_Categorie) + '&action=render');
}
}
}
}
}
}
}
// * Recherche d'un élement dont on connait l'Id mais non unique, donc sans utiliser document.getElementById()
function getElementWithId( elementParentNode , elementTagName , elementId ){
if(!elementParentNode) elementParentNode = document;
var TheElement = false;
var Elements = elementParentNode.getElementsByTagName(elementTagName);
var elementcount = 0;
while(elementcount<Elements.length){
var Id = Elements[elementcount].id;
if(Id){
if(Id.indexOf(elementId)!=-1){
TheElement = Elements[elementcount];
}
}
elementcount++
}
return TheElement;
}
// * Nettoyage du contenu de la fenètre
function cleanContent(element){
if(!element) element = document;
var newContentWrapper = element.getElementsByTagName("div");
var div=0;
while(div<newContentWrapper.length){
if(
(hasClass(newContentWrapper[div], "portlet"))
||
(hasClass(newContentWrapper[div], "printfooter"))
){
newContentWrapper[div].style.display="none";
}
Div_Id = newContentWrapper[div].id;
if(Div_Id){
if(
(Div_Id=="globalWrapper")
||
(Div_Id=="column-content")
||
(Div_Id=="content")
||
(Div_Id=="bodyContent")
||
(Div_Id=="article")
||
(Div_Id=="mw_main")
||
(Div_Id=="mw_contentwrapper")
||
(Div_Id=="mmw_content")
||
(Div_Id=="mmw_contentholder")
){
newContentWrapper[div].id = newContentWrapper[div].id + '_' + div;
}
if(
(Div_Id=="siteNotice")
||
(Div_Id=="p-personal")
||
(Div_Id=="topbar")
||
(Div_Id=="quickbar")
||
(Div_Id=="column-one")
||
(Div_Id=="mw_portlets")
||
(Div_Id=="page-base")
||
(Div_Id=="head-base")
||
(Div_Id=="head")
||
(Div_Id=="panel")
||
(Div_Id=="footer")
||
(Div_Id=="previewnote")
){
newContentWrapper[div].style.display= "none";
}
}
div++
}
}
//