Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/encyclo/articles/b/i/b/ |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- headlinks removed --> <link rel="shortcut icon" href="../../../../misc/favicon.ico"/> <title>Utilisateur:Bibifricotin/Monobook.js - Wikipédia</title> <style type="text/css">/*<![CDATA[*/ @import "../../../../skins/offline/main.css"; /*]]>*/</style> <link rel="stylesheet" type="text/css" media="print" href="../../../../skins/common/commonPrint.css" /> <!--[if lt IE 5.5000]><style type="text/css">@import "../../../../skins/monobook/IE50Fixes.css";</style><![endif]--> <!--[if IE 5.5000]><style type="text/css">@import "../../../../skins/monobook/IE55Fixes.css";</style><![endif]--> <!--[if IE 6]><style type="text/css">@import "../../../../skins/monobook/IE60Fixes.css";</style><![endif]--> <!--[if IE]><script type="text/javascript" src="../../../../skins/common/IEFixes.js"></script> <meta http-equiv="imagetoolbar" content="no" /><![endif]--> <script type="text/javascript" src="../../../../skins/common/wikibits.js"></script> <script type="text/javascript" src="../../../../skins/offline/md5.js"></script> <script type="text/javascript" src="../../../../skins/offline/utf8.js"></script> <script type="text/javascript" src="../../../../skins/offline/lookup.js"></script> <script type="text/javascript" src="../../../../raw/gen.js"></script> <style type="text/css">/*<![CDATA[*/ @import "../../../../raw/MediaWiki%7ECommon.css"; @import "../../../../raw/MediaWiki%7EMonobook.css"; @import "../../../../raw/gen.css"; /*]]>*/</style> </head> <body class="ns-2"> <div id="globalWrapper"> <div id="column-content"> <div id="content"> <a name="top" id="contentTop"></a> <h1 class="firstHeading">Utilisateur:Bibifricotin/Monobook.js</h1> <div id="bodyContent"> <h3 id="siteSub">Un article de Wikipédia, l'encyclopédie libre.</h3> <div id="contentSub"></div> <!-- start content --> <p><b>Note :</b> Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : <b>Mozilla / Konqueror / Firefox :</b> <i>Shift-Ctrl-R</i>, <b>Internet Explorer / Opera :</b> <i>Ctrl-F5</i>, <b>Safari :</b> <i>Cmd-R</i>. </p><div dir="ltr"><pre class="source-javascript">obtenir<span class="br0">(</span><span class="st0">"OptimizedSuivi"</span><span class="br0">)</span>; obtenir<span class="br0">(</span><span class="st0">"ResumeDeluxe"</span><span class="br0">)</span>; obtenir<span class="br0">(</span><span class="st0">"DeluxeBar"</span><span class="br0">)</span>; obtenir<span class="br0">(</span><span class="st0">"OngletPurge"</span><span class="br0">)</span>; document.<span class="kw1">write</span><span class="br0">(</span><span class="st0">'<script type="text/javascript" src="'</span> + <span class="st0">'http://fr.wikipedia.org/w/index.php?title=User:Leag/popups-strings-fr.js'</span> + <span class="st0">'&action=raw&ctype=text/javascript&dontcountme=s"></script>'</span><span class="br0">)</span>; document.<span class="kw1">write</span><span class="br0">(</span><span class="st0">'<script type="text/javascript" src="'</span> + <span class="st0">'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'</span> + <span class="st0">'&action=raw&ctype=text/javascript&dontcountme=s"></script>'</span><span class="br0">)</span>; popupRevertSummaryPrompt=<span class="kw2">true</span>; popupAdminLinks=<span class="kw2">true</span>; <span class="kw2">function</span> OptimizedNavig<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> a = document.<span class="me1">getElementById</span><span class="br0">(</span><span class="st0">"p-navigation"</span><span class="br0">)</span>; <span class="kw1">if</span> <span class="br0">(</span>a<span class="br0">)</span> <span class="br0">{</span> b = a.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">"ul"</span><span class="br0">)</span>; <span class="kw1">if</span><span class="br0">(</span>b.<span class="me1">length</span> > <span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> startUrl = <span class="st0">'/w/index.php?title='</span> <span class="kw2">var</span> endUrl = <span class="st0">'&action=purge'</span> <span class="co1">// liste des URLs</span> <span class="kw2">var</span> urls = <span class="kw2">new</span> Array<span class="br0">(</span><span class="br0">)</span> urls<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> = <span class="st0">'Wikipédia:Le Bistro'</span> urls<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> = <span class="st0">'Wikipédia:Pages à supprimer'</span> urls<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> = <span class="st0">'Wikipédia:Proposition articles de qualité'</span> urls<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> = <span class="st0">'WP:BOT'</span> urls<span class="br0">[</span><span class="nu0">4</span><span class="br0">]</span> = <span class="st0">'Special:Newimages'</span> urls<span class="br0">[</span><span class="nu0">5</span><span class="br0">]</span> = <span class="st0">'Special:Newpages'</span> urls<span class="br0">[</span><span class="nu0">6</span><span class="br0">]</span> = <span class="st0">'Special:Blockip'</span> urls<span class="br0">[</span><span class="nu0">7</span><span class="br0">]</span> = <span class="st0">'Special:Log/delete'</span> urls<span class="br0">[</span><span class="nu0">8</span><span class="br0">]</span> = <span class="st0">'Special:Unusedcategories'</span> urls<span class="br0">[</span><span class="nu0">9</span><span class="br0">]</span> = <span class="st0">'Special:Export'</span> <span class="kw2">var</span> labels = <span class="kw2">new</span> Array<span class="br0">(</span><span class="br0">)</span> labels<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> = <span class="st0">'Bistro'</span> labels<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> = <span class="st0">'PàS'</span> labels<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> = <span class="st0">'pAdQ'</span> labels<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> = <span class="st0">'Bots'</span> labels<span class="br0">[</span><span class="nu0">4</span><span class="br0">]</span> = <span class="st0">'nImgs'</span> labels<span class="br0">[</span><span class="nu0">5</span><span class="br0">]</span> = <span class="st0">'nPage'</span> labels<span class="br0">[</span><span class="nu0">6</span><span class="br0">]</span> = <span class="st0">'Block'</span> labels<span class="br0">[</span><span class="nu0">7</span><span class="br0">]</span> = <span class="st0">'Log/Del'</span> labels<span class="br0">[</span><span class="nu0">8</span><span class="br0">]</span> = <span class="st0">'unCat'</span> labels<span class="br0">[</span><span class="nu0">9</span><span class="br0">]</span> = <span class="st0">'Export'</span> <span class="kw1">for</span> <span class="br0">(</span><span class="kw2">var</span> i=<span class="nu0">0</span>;i<urls.<span class="me1">length</span>;i+=<span class="nu0">2</span><span class="br0">)</span> <span class="br0">{</span> tableHTML = <span class="st0">'<table valign="top" cellspacing="0" cellpadding="0">'</span> tableHTML += <span class="st0">'<tr>'</span> tableHTML += <span class="st0">'<li><td><a href="'</span> + startUrl + urls<span class="br0">[</span>i<span class="br0">]</span> + endUrl + <span class="st0">'">'</span> + labels<span class="br0">[</span>i<span class="br0">]</span> + <span class="st0">' | </a></td>'</span> tableHTML += <span class="st0">'<td><a href="'</span> + startUrl + urls<span class="br0">[</span>i<span class="nu0">+1</span><span class="br0">]</span> + endUrl + <span class="st0">'">'</span> + labels<span class="br0">[</span>i<span class="nu0">+1</span><span class="br0">]</span> + <span class="st0">'</a></td></li>'</span> tableHTML += <span class="st0">'</tr>'</span> tableHTML += <span class="st0">'</table>'</span> b<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">innerHTML</span> = b<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">innerHTML</span> + tableHTML <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> addLoadEvent<span class="br0">(</span>OptimizedNavig<span class="br0">)</span>; <span class="co1">//Nouveau:</span> <span class="co1">//bug de encodeURIcomponent</span> <span class="co1">//bug du multiple diff (direction=prev</span> <span class="co1">//bug de wikiparse (mauvais caracteres)</span> <span class="kw1">if</span><span class="br0">(</span>wgUserGroups.<span class="me1">indexOf</span><span class="br0">(</span><span class="st0">"user"</span><span class="br0">)</span> != <span class="nu0">-1</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> AC_UsersAnchors <span class="co1">//objet contenant les anchors de chaque users, initialisé au premier clic sur l'onglet suivi des users</span> <span class="kw2">var</span> AC_Anchors <span class="co1">//tableau contenant tous les anchors qui nous interresse</span> <span class="kw2">var</span> AC_FollowState = <span class="kw2">false</span> <span class="co1">//l'état des liens users (vers la page ou vers le javascript)</span> loadJsForced<span class="br0">(</span><span class="st0">"User:"</span> + wgUserName + <span class="st0">"/AdvancedContribs.js"</span><span class="br0">)</span> <span class="co1">//rajouter l'onglet suivi des users</span> addLoadEvent<span class="br0">(</span>addFollowTab<span class="br0">)</span> <span class="co1">//si on est dans la sous-page user/AdvancedContrib, alors on lance le bouzin </span> <span class="kw1">if</span> <span class="br0">(</span>wgTitle == <span class="st0">"Maloq/AdvancedContribs"</span> && wgAction == <span class="st0">"view"</span><span class="br0">)</span> <span class="br0">{</span> <span class="co1">//on déclare les variables que si elles sont utiles</span> <span class="kw2">var</span> AC_USERCONTRIBLIMIT = <span class="nu0">0</span> <span class="co1">//type pour addWarning()</span> <span class="kw2">var</span> AC_WATCHLISTLIMIT = <span class="nu0">1</span> <span class="co1">//type pour addWarning()</span> <span class="kw2">var</span> AC_HISTORYLIMIT = <span class="nu0">2</span> <span class="co1">//type pour addWarning()</span> <span class="kw2">var</span> AC_CHANGEVERSION = <span class="nu0">3</span> <span class="co1">//type pour addWarning()</span> <span class="kw2">var</span> AC_INITTITLE = <span class="nu0">4</span> <span class="kw2">var</span> AC_CellWithAnchor <span class="co1">//une cellule et un anchor à l'intérieur, pour la duplication</span> <span class="kw2">var</span> AC_DateRegExp <span class="co1">//la regexp pour les date</span> <span class="kw2">var</span> AC_ArticlesWrotten <span class="co1">//l'objet qui contient tous les articles deja marqué</span> <span class="kw2">var</span> AC_timeStampLimit <span class="co1">//la date a partir de laquelle on choppe les historique en timeStamp</span> <span class="kw2">var</span> AC_dateLimit <span class="co1">//la date a partir de laquelle on choppe les historique</span> <span class="kw2">var</span> AC_requestStack <span class="co1">//pour bloquer les action quand les requets sont lancées</span> <span class="co1">//la variables locales sont la pour pouvoir charger la page sans sauvegarder les paramètres</span> <span class="kw2">var</span> AC_delayContrib_LOC <span class="kw2">var</span> AC_includeFollowList_LOC <span class="kw2">var</span> AC_version_LOC <span class="co1">//n° de version en cours, mise sur le page de AC</span> <span class="kw2">var</span> AC_version = <span class="st0">"0.9.9"</span> <span class="co1">//n° de version du script</span> addLoadEvent<span class="br0">(</span>startAdvancedContrib<span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//initialise les variables nécéssaire à l'onglet sans avoir la liste: optimiser le temps</span> <span class="kw2">function</span> initVarsMin<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_changeFollowListLink<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_changeFollowListLink = <span class="kw2">false</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//initialise les variables pour la page de contrib, si elles n'existent pas, la fonction les crée</span> <span class="kw2">function</span> initVars<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_BlackList<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_BlackList = <span class="kw2">new</span> Array<span class="br0">(</span><span class="br0">)</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_debugFlag<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_debugFlag = <span class="kw2">false</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_delayContrib<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_delayContrib = <span class="nu0">24</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_includeFollowList<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_includeFollowList = <span class="kw2">false</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_watchListLimit<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_watchListLimit = <span class="nu0">500</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_historyLimit<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_historyLimit = <span class="nu0">50</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_userContribLimit<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_userContribLimit = <span class="nu0">50</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_blackListColor<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_blackListColor = <span class="st0">'#FFB0B0'</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_normalListColor<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_normalListColor = <span class="st0">'#B0FFB0'</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_displayDeleteLink<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_displayDeleteLink = <span class="kw2">false</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_displayWarnings<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_displayWarnings = <span class="kw2">true</span> <span class="br0">}</span> <span class="kw1">try</span> <span class="br0">{</span><span class="kw1">if</span><span class="br0">(</span>AC_changeFollowListLink<span class="br0">)</span><span class="br0">{</span><span class="br0">}</span><span class="br0">}</span> <span class="kw1">catch</span><span class="br0">(</span>e<span class="br0">)</span><span class="br0">{</span> AC_changeFollowListLink = <span class="kw2">false</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">/////////////////////////////////////TOOLBOX ///////////////////////////////////////////////////</span> <span class="co1">//if en fonction</span> <span class="kw2">function</span> iif<span class="br0">(</span>cond, ifTrue, ifFalse<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>cond<span class="br0">)</span> <span class="kw1">return</span> ifTrue <span class="kw1">return</span> ifFalse <span class="br0">}</span> <span class="co1">//charge un js en forçant la purge du cache</span> <span class="kw2">function</span> loadJsForced<span class="br0">(</span>page<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> date = <span class="kw2">new</span> Date<span class="br0">(</span><span class="br0">)</span>.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> document.<span class="kw1">write</span><span class="br0">(</span><span class="st0">'<script type="text/javascript" src="'</span> + <span class="st0">'http://fr.wikipedia.org/w/index.php?title='</span> + page + <span class="st0">'&action=raw&ctype=text/javascript&dontcountme=s&dummy='</span> + date + <span class="st0">'"></script>'</span><span class="br0">)</span>; <span class="br0">}</span> <span class="co1">//renvoi la string commentaire parsé pour avoir les liens</span> <span class="kw2">function</span> wikiParse<span class="br0">(</span>string<span class="br0">)</span> <span class="br0">{</span> string = string.<span class="me1">replace</span><span class="br0">(</span><span class="re0">/&/</span>, <span class="st0">'&amp;'</span><span class="br0">)</span>; string = string.<span class="me1">replace</span><span class="br0">(</span><span class="re0">/>/</span>, <span class="st0">'&gt;'</span><span class="br0">)</span>; string = string.<span class="me1">replace</span><span class="br0">(</span><span class="re0">/</</span>, <span class="st0">'&lt;'</span><span class="br0">)</span>; string = string.<span class="me1">replace</span><span class="br0">(</span>/<span class="st0">"/, '&quot;'); //les [[liens]] string = string.replace(/<span class="es0">\[</span><span class="es0">\[</span>(([^<span class="es0">\]</span><span class="es0">\|</span>]*)(.*?))<span class="es0">\]</span><span class="es0">\]</span>/g, "</span><a href=<span class="st0">'"+wgServer+wgScriptPath+"/index.php?title=$2&redirect=no'</span> target=<span class="st0">'_new'</span>>$<span class="nu0">1</span></a><span class="st0">"); string = string.replace(/<span class="es0">\></span>[^<span class="es0">\]</span><span class="es0">\|</span><]*<span class="es0">\|</span>([^<span class="es0">\]</span><span class="es0">\|</span><]*)</g, "</span>>$<span class="nu0">1</span><<span class="st0">"); //les commentaires string = string.replace(/<span class="es0">\/</span><span class="es0">\*</span>(([^<span class="es0">\*</span><span class="es0">\/</span>]*)(.*?))<span class="es0">\*</span><span class="es0">\/</span>/g, "</span><span style=<span class="st0">'color:#888888'</span>><span class="coMULTI">/*$1*/</span></span><span class="st0">"); //les modèles string = string.replace(/<span class="es0">\{</span><span class="es0">\{</span>(([^<span class="es0">\}</span><span class="es0">\|</span>]*)(.*?))<span class="es0">\}</span><span class="es0">\}</span>/g, "</span><a href=<span class="st0">'"+wgServer+wgScriptPath+"/index.php?title=Modèle:$2&redirect=no'</span> target=<span class="st0">'_new'</span>>$<span class="nu0">1</span></a><span class="st0">"); string = string.replace(/<span class="es0">\></span>([^<span class="es0">\]</span><span class="es0">\|</span><]*)<span class="es0">\|</span>([^<span class="es0">\]</span><span class="es0">\|</span><]*)</g, "</span>><span class="br0">{</span><span class="br0">{</span>$<span class="nu0">1</span>|$<span class="nu0">2</span><span class="br0">}</span><span class="br0">}</span><<span class="st0">"); return string } //parse la chaine de caratère et la transforme en date function parseDate(string) { var now = new Date(); var match = AC_DateRegExp.exec(string); if (!match) return now now.setFullYear(match[1],(match[2])-1, match[3]) now.setHours(match[4], match[5], match[6],0) now.setTime(now.getTime() + (-now.getTimezoneOffset())*60*1000) return now } /////////////////////////////////////FONCTIONS LIEES A L'ONGLET////////////////////////////////// //rajoute l'onglet suivi des users function addFollowTab() { var list = document.getElementById('p-cactions') initVarsMin() if(!list) return list = list.childNodes[3].childNodes[1] var elt = document.createElement('li') elt.innerHTML = "</span><a id=<span class="st0">'caa_userFollow'</span> href=<span class="st0">'javascript:toggleFollowAnchor()'</span>>Suivi des users</a><span class="st0">" list.appendChild(elt) if(AC_changeFollowListLink) { var li = document.getElementById("</span>pt-watchlist<span class="st0">") if(li) li.firstChild.href = "</span><span class="re0">/wiki/Utilisateur:Maloq/</span>AdvancedContribs<span class="st0">" } } //change l'état d'un utilisateur (suivi ou non) function toggleUser(User) { var userPos = AC_BlackList.indexOf(User) var Summeray if(userPos == -1) { AC_BlackList[AC_BlackList.length] = User setAnchorState(User, true) ajaxSetUsersPage('Rajoute ' + User) } else { AC_BlackList.splice(userPos, 1) setAnchorState(User, false) ajaxSetUsersPage('Supprime ' + User) } } //change l'etat des anchors associé a user (Followed: true pour mettre suivi, false pour mettre normal) function setAnchorState(user, Followed) { var i var len = AC_UsersAnchors[user].length for(i=0;i!=len;i++) { if(Followed) AC_UsersAnchors[user][i].style.background = AC_blackListColor else AC_UsersAnchors[user][i].style.background = AC_normalListColor } } //lupin :p function getUserFromHref(href) { var regexp = new RegExp(/(<span class="es0">\/</span>wiki<span class="es0">\/</span>Utilisateur:|<span class="es0">\/</span>wiki<span class="es0">\/</span>Special:Contributions<span class="es0">\/</span>)([^<span class="es0">\/</span>]+)$/) var match = regexp.exec(href) if(match) return decodeURIComponent(match[2]).replace("</span>_<span class="st0">", "</span> <span class="st0">") return "</span><span class="st0">" } //function qui cherches les anchor vers les pages users et qui change le href (soit vers la fonction js, soit vers la page user) function toggleFollowAnchor() { var localAnchors var i, user, len var first = false initVars() if(!AC_Anchors) { first = true AC_UsersAnchors = new Object() AC_Anchors = new Array() localAnchors = document.getElementById('bodyContent').getElementsByTagName('a') } else { localAnchors = AC_Anchors } len = localAnchors.length if(AC_FollowState == false) { if(first) //on dédouble le for pour que ca soit plus rapide { for(i=0;i!=len;i++) { user = getUserFromHref(localAnchors[i].href) if(user!="</span><span class="st0">") { if(!AC_UsersAnchors[user]) AC_UsersAnchors[user] = new Array() AC_UsersAnchors[user][AC_UsersAnchors[user].length] = localAnchors[i] AC_Anchors[AC_Anchors.length] = localAnchors[i] localAnchors[i].AC_user = user localAnchors[i].AC_hrefSave = localAnchors[i].href localAnchors[i].href = 'javascript:toggleUser("</span><span class="st0">' + user + '</span><span class="st0">")' if(AC_BlackList.indexOf(user)!=-1 ) localAnchors[i].style.background = AC_blackListColor else localAnchors[i].style.background = AC_normalListColor } } } else { for(i=0;i!=len;i++) { user = localAnchors[i].AC_user localAnchors[i].href = 'javascript:toggleUser("</span><span class="st0">' + user + '</span><span class="st0">")' if(AC_BlackList.indexOf(user)!=-1 ) localAnchors[i].style.background = AC_blackListColor else localAnchors[i].style.background = AC_normalListColor } } document.getElementById('caa_userFollow').innerHTML='Liens users normaux' AC_FollowState = true } else { //la, le premier passage a deja rempli les tableau for(i=0;i!=len;i++) { localAnchors[i].href = localAnchors[i].AC_hrefSave localAnchors[i].style.background='' } document.getElementById('caa_userFollow').innerHTML='Suivi des users' AC_FollowState = false } } ////////////////////////////////////////FONCTIONS LIEES A LA LISTE, OU AUX DEUX //cherche le numero de version dans le textContent de bodyContent function getVersionNo(str) { var regexp = new RegExp() var match regexp.compile(/§§§([^#]*)§§§/) match = regexp.exec(str) if(match) return match[1] return "</span><span class="st0">" } //fonction qui lance le bouzin function startAdvancedContrib() { var div=document.getElementById('bodyContent') var getAnchorsFollowed = function() { var res = "</span><span class="st0">" for(var i=0;i!=AC_BlackList.length;i++) res = res + htmlUserPageLink(AC_BlackList[i]) + "</span>&nbsp;<span class="st0">" return res } initVars() AC_version_LOC = getVersionNo(div.textContent) AC_delayContrib_LOC = AC_delayContrib AC_includeFollowList_LOC = AC_includeFollowList div.innerHTML= "</span><table><tr><td>Monter les contributions <select id=<span class="st0">'AC_delayContrib'</span>><span class="st0">" + "</span><option value=<span class="st0">'1'</span> <span class="st0">" + iif(AC_delayContrib==1, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>de la dernière heure</option><span class="st0">" + "</span><option value=<span class="st0">'3'</span> <span class="st0">" + iif(AC_delayContrib==3, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>des <span class="nu0">3</span> dernières heures</option><span class="st0">" + "</span><option value=<span class="st0">'6'</span> <span class="st0">" + iif(AC_delayContrib==6, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>des <span class="nu0">6</span> dernières heures</option><span class="st0">" + "</span><option value=<span class="st0">'12'</span> <span class="st0">" + iif(AC_delayContrib==12, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>des <span class="nu0">12</span> dernières heures</option><span class="st0">" + "</span><option value=<span class="st0">'18'</span> <span class="st0">" + iif(AC_delayContrib==18, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>des <span class="nu0">18</span> dernières heures</option><span class="st0">" + "</span><option value=<span class="st0">'24'</span> <span class="st0">" + iif(AC_delayContrib==24, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>du dernier jour</option><span class="st0">" + "</span><option value=<span class="st0">'48'</span> <span class="st0">" + iif(AC_delayContrib==48, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>des deux derniers jours</option><span class="st0">" + "</span><option value=<span class="st0">'72'</span> <span class="st0">" + iif(AC_delayContrib==72, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>des trois derniers jours</option><span class="st0">" + "</span><option value=<span class="st0">'168'</span> <span class="st0">" + iif(AC_delayContrib==168, "</span>SELECTED<span class="st0">","</span><span class="st0">") + "</span>>de la semaine dernière<<span class="re0">/option></select></</span>td><span class="st0">" + "</span><input type=checkbox id=<span class="st0">'AC_includeFollowList'</span> <span class="st0">" + iif(AC_includeFollowList,"</span>checked<span class="st0">","</span><span class="st0">") + "</span>><span class="st0">" + "</span><label <span class="kw1">for</span>=<span class="st0">'AC_includeFollowList'</span>>Inclure la liste de suivi</label><span class="st0">" + "</span><td><button id=<span class="st0">'btn_reload'</span> onclick=<span class="st0">'setLocalParameters()'</span>>Recharger avec ces paramètres<<span class="re0">/button></</span>td><span class="st0">" + "</span><td><button id=<span class="st0">'btn_save'</span> onclick=<span class="st0">'saveParameters()'</span>>Enregistrez ces paramètres<<span class="re0">/button></</span>td><span class="st0">" + "</span><<span class="re0">/tr></</span>table><span class="st0">" + "</span><small><div id=<span class="st0">'contribContent'</span>>&nbsp;</div><span class="st0">" + "</span><div id=<span class="st0">'WarningDiv'</span> style=<span class="st0">'display:none;border:2px solid #FF9900;padding-left:3px'</span>><b><big>Warnings<<span class="re0">/big></b><br></</span>div><span class="st0">" + "</span><div id=<span class="st0">'AlertDiv'</span> style=<span class="st0">'display:none;border:2px solid #FF0000;padding-left:3px'</span>><b><big>Alerts<<span class="re0">/big></b><br></</span>div><span class="st0">" + "</span><center><div><span class="st0">" + getAnchorsFollowed() + "</span></div><span class="st0">" + "</span><div><span class="st0">" + "</span><a href=<span class="st0">'/wiki/Utilisateur:Maloq/AdvancedContribs/Todo'</span> title=<span class="st0">'todo'</span>>ToDo</a> - <span class="st0">" + "</span><a href=<span class="st0">'/wiki/Utilisateur:Maloq/AdvancedContribs/Documentation'</span> title=<span class="st0">'Documentation'</span>>Documentation</a> - <span class="st0">" + "</span><a href=<span class="st0">'/wiki/Utilisateur:" + wgUserName + "/AdvancedContribs.js'</span> title=<span class="st0">'Vos paramètres'</span>>Vos paramètres</a><span class="st0">" + "</span><<span class="re0">/div></center></</span>small><span class="st0">" //on crée la regexp pour le timestamp AC_DateRegExp = new RegExp(); AC_DateRegExp.compile(/^(<span class="es0">\d</span><span class="es0">\d</span><span class="es0">\d</span><span class="es0">\d</span>)-(<span class="es0">\d</span><span class="es0">\d</span>)-(<span class="es0">\d</span><span class="es0">\d</span>)T(<span class="es0">\d</span><span class="es0">\d</span>):(<span class="es0">\d</span><span class="es0">\d</span>):(<span class="es0">\d</span><span class="es0">\d</span>)Z$/) //cette cellule est la cellule de base qui conttient un seul anchor AC_CellWithAnchor = document.createElement("</span>td<span class="st0">") AC_CellWithAnchor.appendChild(document.createElement("</span>a<span class="st0">")) AC_CellWithAnchor.style.paddingRight='3px' AC_CellWithAnchor.style.width='0%' getData() } //ligne de debug function addAlert(Text) { if(AC_debugFlag) { var div = document.getElementById('AlertDiv') if(!div) alert(Text) else { var newDiv = document.createElement('div') div.style.display='' newDiv.innerHTML = Text div.appendChild(newDiv) } } } //affiche les warnings function addWarning(Type, Data1) { var div = document.getElementById('WarningDiv') var newDiv = document.createElement('div') var str if(AC_displayWarnings) div.style.display='' switch(Type) { case (AC_USERCONTRIBLIMIT): { str = "</span>La limite de requête <span class="br0">(</span><span class="st0">" + AC_userContribLimit + "</span><span class="br0">)</span> a été atteinte pour les contributions de <span class="st0">" + htmlUserLink(Data1) break } case (AC_WATCHLISTLIMIT): { str = "</span>La limite de requête <span class="br0">(</span><span class="st0">" + AC_watchListLimit + "</span><span class="br0">)</span> a été atteinte pour votre <a href=<span class="st0">'/wiki/Special:Watchlist'</span>>liste de suivi</a><span class="st0">" break } case (AC_HISTORYLIMIT): { str = "</span>La limite de requête <span class="br0">(</span><span class="st0">" + AC_historyLimit + "</span><span class="br0">)</span> a été atteinte pour l<span class="st0">'historique de " + htmlArticleLink(Data1) break } case (AC_CHANGEVERSION): { str = "<big>Une nouvelle version d'</span><b>AdvancedContribs<<span class="re0">/b> est sortie, rechargez votre cache.</</span>big><span class="st0">" break } case (AC_INITTITLE): { str = "</span><big><b>Warnings<<span class="re0">/b></</span>big><span class="st0">" div.innerHTML = '' div.style.display='none' break } } newDiv.innerHTML = str div.appendChild(newDiv) } //met la valeurs du formulaire dans les variables locales et recharge function setLocalParameters() { AC_delayContrib_LOC = document.getElementById('AC_delayContrib').value AC_includeFollowList_LOC = document.getElementById('AC_includeFollowList').checked getData() } //met les valeurs du formulaire dans les variables, sauvegarde et recharge la page function saveParameters() { AC_delayContrib = document.getElementById('AC_delayContrib').value AC_includeFollowList = document.getElementById('AC_includeFollowList').checked ajaxSetUsersPage("</span>Modifie les paramètres<span class="st0">") } //renvoi une chaine de caractère en mettant des zero aux place vide, maximum 4 la taille function toNString(num, length) { num = num + "</span><span class="st0">" while(num.length < length) num = "</span><span class="nu0">0</span><span class="st0">" + num return num } //renvoi le timeStamp depuis l'object date function getTimeStamp(date) { return date.getFullYear() + "</span>-<span class="st0">" + toNString(date.getMonth() + 1, 2) + "</span>-<span class="st0">" + toNString(date.getDate(), 2) + "</span>T<span class="st0">" + toNString(date.getHours(), 2) + "</span>:<span class="st0">" + toNString(date.getMinutes(), 2) + "</span>:<span class="st0">" + toNString(date.getSeconds(), 2) + "</span>Z<span class="st0">" } //crée les variables en Js pour la sauvegarde function getVariablesStrForSaving() { var res = "</span><span class="kw2">var</span> AC_BlackList = <span class="kw2">new</span> Array<span class="br0">(</span><span class="st0">" var i for(i=0;i!=AC_BlackList.length;i++) { if(i!=0) res = res + "</span>,<span class="st0">" res = res + "</span><span class="st0">'" + AC_BlackList[i].replace(/'</span>/,<span class="st0">"<span class="es0">\\</span>'"</span><span class="br0">)</span> + <span class="st0">"'"</span> <span class="br0">}</span> <span class="kw1">return</span> res + <span class="st0">"); //liste des users suivi<span class="es0">\n</span>"</span> + <span class="st0">"var AC_debugFlag="</span> + AC_debugFlag + <span class="st0">"; //infos de debogage (laisser à faux)<span class="es0">\n</span>"</span> + <span class="st0">"var AC_delayContrib="</span> + AC_delayContrib + <span class="st0">"; //en heure, jusqu'a quand on va chercher les contribs<span class="es0">\n</span>"</span> + <span class="st0">"var AC_includeFollowList="</span> + AC_includeFollowList + <span class="st0">"; //si on inclut les articles de la liste de suivi<span class="es0">\n</span>"</span> + <span class="st0">"var AC_watchListLimit="</span> + AC_watchListLimit + <span class="st0">"; //limite de réponse de la requete de la liste de suivi<span class="es0">\n</span>"</span> + <span class="st0">"var AC_historyLimit="</span> + AC_historyLimit + <span class="st0">"; //limite de réponse de la requete de l'historique d'un article<span class="es0">\n</span>"</span> + <span class="st0">"var AC_userContribLimit="</span> + AC_userContribLimit + <span class="st0">"; //limite de réponse de la requete des contributions d'un user<span class="es0">\n</span>"</span> + <span class="st0">"var AC_changeFollowListLink="</span> + AC_changeFollowListLink + <span class="st0">"; //si true, change le lien 'liste de suivi' vers la page advancedContrib<span class="es0">\n</span>"</span> + <span class="st0">"var AC_blackListColor='"</span> + AC_blackListColor + <span class="st0">"'; //la couleur de fond d'un user suivi en blacklist<span class="es0">\n</span>"</span> + <span class="st0">"var AC_normalListColor='"</span> + AC_normalListColor + <span class="st0">"'; //la couleur de fond d'un utilisateur non suivi<span class="es0">\n</span>"</span> + <span class="st0">"var AC_displayDeleteLink="</span> + AC_displayDeleteLink + <span class="st0">"; //affiche un lien delete pour chaque article dans la liste (landry-mode)<span class="es0">\n</span>"</span> + <span class="st0">"var AC_displayWarnings="</span> + AC_displayWarnings + <span class="st0">"; //affiche les warnings (souvent qd les limites sont atteintes)<span class="es0">\n</span>"</span> <span class="br0">}</span> <span class="co1">//a aprtir de la source d'une page html, cherche la valeur de l'input</span> <span class="co1">//todo: essayer le DOMParser</span> <span class="kw2">function</span> getInputValueFromStr<span class="br0">(</span>str<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> regexp = <span class="kw2">new</span> RegExp<span class="br0">(</span><span class="br0">)</span> <span class="kw2">var</span> match regexp.<span class="me1">compile</span><span class="br0">(</span>/value=<span class="br0">[</span><span class="st0">"']([^"</span><span class="st0">']+)["'</span><span class="br0">]</span>/<span class="br0">)</span> match = regexp.<span class="me1">exec</span><span class="br0">(</span>str<span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>match<span class="br0">)</span> <span class="kw1">return</span> match<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span> <span class="kw1">return</span> <span class="st0">""</span> <span class="br0">}</span> <span class="co1">//change la page user/AdvancedContrib selon le tableau Users</span> <span class="kw2">function</span> ajaxSetUsersPage<span class="br0">(</span>Summeray<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> req=<span class="kw2">new</span> XMLHttpRequest<span class="br0">(</span><span class="br0">)</span> req.<span class="me1">onreadystatechange</span> = <span class="kw2">function</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="me1">readyState</span> == <span class="nu0">4</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="kw3">status</span>==<span class="nu0">200</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> regexp = <span class="kw2">new</span> RegExp<span class="br0">(</span><span class="br0">)</span> <span class="kw2">var</span> match <span class="kw2">var</span> wpStarttime = <span class="st0">""</span> <span class="kw2">var</span> wpEdittime = <span class="st0">""</span> <span class="kw2">var</span> wpEditToken = <span class="st0">""</span> <span class="kw2">var</span> wpWatchthis = <span class="st0">""</span> regexp.<span class="me1">compile</span><span class="br0">(</span>/<span class="br0">(</span><input<span class="br0">[</span>^><span class="br0">]</span>+<span class="kw3">name</span>=<span class="st0">"wpStarttime"</span><span class="br0">[</span>^><span class="br0">]</span>+><span class="br0">)</span>/<span class="br0">)</span> match=regexp.<span class="me1">exec</span><span class="br0">(</span>req.<span class="me1">responseText</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>match<span class="br0">)</span> wpStarttime = getInputValueFromStr<span class="br0">(</span>match<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span> regexp.<span class="me1">compile</span><span class="br0">(</span>/<span class="br0">(</span><input<span class="br0">[</span>^><span class="br0">]</span>+<span class="kw3">name</span>=<span class="st0">"wpEdittime"</span><span class="br0">[</span>^><span class="br0">]</span>+><span class="br0">)</span>/<span class="br0">)</span> match=regexp.<span class="me1">exec</span><span class="br0">(</span>req.<span class="me1">responseText</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>match<span class="br0">)</span> wpEdittime = getInputValueFromStr<span class="br0">(</span>match<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span> regexp.<span class="me1">compile</span><span class="br0">(</span>/<span class="br0">(</span><input<span class="br0">[</span>^><span class="br0">]</span>+<span class="kw3">name</span>=<span class="st0">"wpEditToken"</span><span class="br0">[</span>^><span class="br0">]</span>+><span class="br0">)</span>/<span class="br0">)</span> match=regexp.<span class="me1">exec</span><span class="br0">(</span>req.<span class="me1">responseText</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>match<span class="br0">)</span> wpEditToken = getInputValueFromStr<span class="br0">(</span>match<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span> regexp.<span class="me1">compile</span><span class="br0">(</span>/<span class="br0">(</span><input<span class="br0">[</span>^><span class="br0">]</span>+<span class="kw3">name</span>=<span class="st0">"wpWatchthis"</span><span class="br0">[</span>^><span class="br0">]</span>+><span class="br0">)</span>/<span class="br0">)</span> match=regexp.<span class="me1">exec</span><span class="br0">(</span>req.<span class="me1">responseText</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>match<span class="br0">)</span> wpWatchthis = getInputValueFromStr<span class="br0">(</span>match<span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</span> <span class="kw2">var</span> varStr = getVariablesStrForSaving<span class="br0">(</span><span class="br0">)</span> <span class="kw2">var</span> reqSubmit=<span class="kw2">new</span> XMLHttpRequest<span class="br0">(</span><span class="br0">)</span> <span class="kw2">var</span> post = <span class="st0">"wpTextbox1="</span> + encodeURIComponent<span class="br0">(</span>varStr<span class="br0">)</span> + <span class="st0">"&wpSummary="</span> + encodeURIComponent<span class="br0">(</span>Summeray<span class="br0">)</span> post = post + <span class="st0">"&wpStarttime="</span> + encodeURIComponent<span class="br0">(</span>wpStarttime<span class="br0">)</span> post = post + <span class="st0">"&wpEdittime="</span> + encodeURIComponent<span class="br0">(</span>wpEdittime<span class="br0">)</span> post = post + <span class="st0">"&wpEditToken="</span> + encodeURIComponent<span class="br0">(</span>wpEditToken<span class="br0">)</span> post = post + <span class="st0">"&wpWatchthis="</span> + encodeURIComponent<span class="br0">(</span>wpWatchthis<span class="br0">)</span> reqSubmit.<span class="kw3">open</span><span class="br0">(</span><span class="st0">"POST"</span>,<span class="st0">"/w/index.php?title=Utilisateur:"</span> + wgUserName + <span class="st0">"/AdvancedContribs.js&action=submit"</span>, <span class="kw2">true</span><span class="br0">)</span> reqSubmit.<span class="me1">setRequestHeader</span><span class="br0">(</span><span class="st0">'Content-Type'</span>, <span class="st0">'application/x-www-form-urlencoded'</span><span class="br0">)</span> reqSubmit.<span class="me1">send</span><span class="br0">(</span>post<span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> req.<span class="kw3">open</span><span class="br0">(</span><span class="st0">"GET"</span>,<span class="st0">"/w/index.php?title=Utilisateur:"</span> + wgUserName + <span class="st0">"/AdvancedContribs.js&action=edit"</span>, <span class="kw2">true</span><span class="br0">)</span> req.<span class="me1">setRequestHeader</span><span class="br0">(</span><span class="st0">'Content-Type'</span>, <span class="st0">'application/x-www-form-urlencoded'</span><span class="br0">)</span> req.<span class="me1">send</span><span class="br0">(</span><span class="kw2">null</span><span class="br0">)</span> <span class="br0">}</span> <span class="co1">//renvoi true si l'user est une ip</span> <span class="kw2">function</span> isIP<span class="br0">(</span>user<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> match = user.<span class="me1">split</span><span class="br0">(</span><span class="st0">"."</span><span class="br0">)</span> <span class="kw2">var</span> i <span class="kw1">if</span><span class="br0">(</span>match.<span class="me1">length</span> != <span class="nu0">4</span><span class="br0">)</span> <span class="kw1">return</span> <span class="kw2">false</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>;i!=<span class="nu0">4</span>;i++<span class="br0">)</span> <span class="br0">{</span> match<span class="br0">[</span>i<span class="br0">]</span> = parseInt<span class="br0">(</span>match<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>isNaN<span class="br0">(</span>match<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span><span class="br0">)</span> <span class="kw1">return</span> <span class="kw2">false</span> <span class="kw1">if</span><span class="br0">(</span>match<span class="br0">[</span>i<span class="br0">]</span><<span class="nu0">0</span> || match<span class="br0">[</span>i<span class="br0">]</span>><span class="nu0">255</span><span class="br0">)</span> <span class="kw1">return</span> <span class="kw2">false</span> <span class="br0">}</span> <span class="kw1">return</span> <span class="kw2">true</span> <span class="br0">}</span> <span class="co1">//met la page en attente de la fin des chargement ou la libere</span> <span class="co1">//true pour dire qu'elle fait les requetes, false pour la liberer</span> <span class="kw2">function</span> setPageLocked<span class="br0">(</span>state<span class="br0">)</span> <span class="br0">{</span> document.<span class="me1">getElementById</span><span class="br0">(</span><span class="st0">'btn_save'</span><span class="br0">)</span>.<span class="me1">disabled</span> =state document.<span class="me1">getElementById</span><span class="br0">(</span><span class="st0">'btn_reload'</span><span class="br0">)</span>.<span class="me1">disabled</span> =state <span class="br0">}</span> <span class="co1">//initialise la page pour qu'elle puisse recevoir les contribs</span> <span class="kw2">function</span> initPage<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> div = document.<span class="me1">getElementById</span><span class="br0">(</span><span class="st0">'contribContent'</span><span class="br0">)</span> <span class="kw2">var</span> table = document.<span class="me1">createElement</span><span class="br0">(</span><span class="st0">'table'</span><span class="br0">)</span> <span class="kw2">var</span> date = <span class="kw2">new</span> Date<span class="br0">(</span><span class="br0">)</span> addWarning<span class="br0">(</span>AC_INITTITLE<span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>AC_version_LOC != AC_version<span class="br0">)</span> addWarning<span class="br0">(</span>AC_CHANGEVERSION<span class="br0">)</span> table.<span class="me1">id</span> = <span class="st0">'tablecontrib'</span> table.<span class="me1">cellPadding</span> = <span class="nu0">0</span> table.<span class="me1">cellSpacing</span> = <span class="nu0">0</span> div.<span class="me1">innerHTML</span> = <span class="st0">''</span> div.<span class="me1">appendChild</span><span class="br0">(</span>table<span class="br0">)</span> <span class="co1">//jetlag</span> date.<span class="me1">setTime</span><span class="br0">(</span>date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> + <span class="br0">(</span>date.<span class="me1">getTimezoneOffset</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span>*<span class="nu0">60</span>*<span class="nu0">1000</span><span class="br0">)</span> <span class="co1">//on recul de AC_delayContrib_LOC jours</span> AC_dateLimit = <span class="kw2">new</span> Date<span class="br0">(</span>date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> - AC_delayContrib_LOC * <span class="nu0">60</span> * <span class="nu0">60</span> * <span class="nu0">1000</span><span class="br0">)</span> AC_timeStampLimit = getTimeStamp<span class="br0">(</span>AC_dateLimit<span class="br0">)</span> AC_ArticlesWrotten = <span class="kw2">new</span> Object<span class="br0">(</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>AC_FollowState == <span class="kw2">true</span><span class="br0">)</span> toggleFollowAnchor<span class="br0">(</span><span class="br0">)</span> AC_FollowState = <span class="kw2">false</span> AC_Anchors = <span class="kw2">false</span> <span class="co1">//pour reforcer l'état des anchors</span> AC_requestStack = <span class="nu0">0</span> setPageLocked<span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> <span class="br0">}</span> <span class="co1">//lance les requetes qui vont chercher les contributions des utilisateurs</span> <span class="kw2">function</span> getData<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> i initPage<span class="br0">(</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>AC_includeFollowList_LOC<span class="br0">)</span> getDataFollowList<span class="br0">(</span><span class="br0">)</span> <span class="kw1">else</span> <span class="co1">//c'est la liste de suivi qui appellera celle la</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>;i<AC_BlackList.<span class="me1">length</span>;i++<span class="br0">)</span> getDataUserContrib<span class="br0">(</span>AC_BlackList<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span> <span class="br0">}</span> <span class="co1">//fait la requete des contributions de cet user</span> <span class="kw2">function</span> getDataUserContrib<span class="br0">(</span>user<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> i <span class="kw2">var</span> req=<span class="kw2">new</span> XMLHttpRequest<span class="br0">(</span><span class="br0">)</span> req.<span class="me1">user</span> = user req.<span class="me1">ip</span> = isIP<span class="br0">(</span>user<span class="br0">)</span> req.<span class="me1">onreadystatechange</span> = <span class="kw2">function</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="me1">readyState</span> == <span class="nu0">4</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="kw3">status</span>==<span class="nu0">200</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>!req.<span class="me1">responseXML</span><span class="br0">)</span> addAlert<span class="br0">(</span><span class="st0">"Echec lors de la requete des contributions de "</span> + req.<span class="me1">user</span><span class="br0">)</span> <span class="kw1">else</span> <span class="br0">{</span> cleanQueryContinue<span class="br0">(</span>req.<span class="me1">responseXML</span>, AC_USERCONTRIBLIMIT, req.<span class="me1">user</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="me1">ip</span><span class="br0">)</span> getHistoriesFromIpContrib<span class="br0">(</span>req.<span class="me1">responseXML</span>, req.<span class="me1">user</span><span class="br0">)</span> <span class="kw1">else</span> getHistoriesFromUserContrib<span class="br0">(</span>req.<span class="me1">responseXML</span>, req.<span class="me1">user</span><span class="br0">)</span> <span class="br0">}</span> AC_requestStack-- <span class="kw1">if</span><span class="br0">(</span>AC_requestStack==<span class="nu0">0</span><span class="br0">)</span> setPageLocked<span class="br0">(</span><span class="kw2">false</span><span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="me1">ip</span><span class="br0">)</span> req.<span class="kw3">open</span><span class="br0">(</span><span class="st0">"GET"</span>,<span class="st0">"/w/query.php?what=usercontribs&titles=User:"</span> + user + <span class="st0">"&uclimit="</span> + AC_userContribLimit + <span class="st0">"&format=xml"</span>, <span class="kw2">true</span><span class="br0">)</span> <span class="kw1">else</span> req.<span class="kw3">open</span><span class="br0">(</span><span class="st0">"GET"</span>,<span class="st0">"/w/api.php?action=query&list=usercontribs&ucuser="</span> + user + <span class="st0">"&ucprop=title&uclimit="</span> + AC_userContribLimit + <span class="st0">"&format=xml&ucend="</span> + AC_timeStampLimit, <span class="kw2">true</span><span class="br0">)</span> req.<span class="me1">setRequestHeader</span><span class="br0">(</span><span class="st0">'Content-Type'</span>, <span class="st0">'text/xml; charset=utf-8'</span><span class="br0">)</span> req.<span class="me1">send</span><span class="br0">(</span><span class="kw2">null</span><span class="br0">)</span> AC_requestStack++ <span class="br0">}</span> <span class="co1">//fait la requete de la liste de suivi</span> <span class="kw2">function</span> getDataFollowList<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> req=<span class="kw2">new</span> XMLHttpRequest<span class="br0">(</span><span class="br0">)</span> req.<span class="me1">onreadystatechange</span> = <span class="kw2">function</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="me1">readyState</span> == <span class="nu0">4</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="kw3">status</span>==<span class="nu0">200</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>!req.<span class="me1">responseXML</span><span class="br0">)</span> addAlert<span class="br0">(</span><span class="st0">"Echec lors de la requete de votre liste de suvi"</span><span class="br0">)</span> <span class="kw1">else</span> <span class="br0">{</span> cleanQueryContinue<span class="br0">(</span>req.<span class="me1">responseXML</span>, AC_WATCHLISTLIMIT, <span class="st0">""</span><span class="br0">)</span> writeWatchList<span class="br0">(</span>req.<span class="me1">responseXML</span><span class="br0">)</span> <span class="kw1">for</span><span class="br0">(</span><span class="kw2">var</span> i=<span class="nu0">0</span>;i<AC_BlackList.<span class="me1">length</span>;i++<span class="br0">)</span> <span class="co1">//pour pouvoir mettre l'async, on met ça</span> getDataUserContrib<span class="br0">(</span>AC_BlackList<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span> <span class="br0">}</span> AC_requestStack-- <span class="kw1">if</span><span class="br0">(</span>AC_requestStack==<span class="nu0">0</span><span class="br0">)</span> setPageLocked<span class="br0">(</span><span class="kw2">false</span><span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> req.<span class="kw3">open</span><span class="br0">(</span><span class="st0">"GeT"</span>, <span class="st0">"/w/api.php?action=query&generator=watchlist&gwlallrev&prop=revisions&gwllimit="</span> + AC_watchListLimit + <span class="st0">"&format=xml&gwlend="</span> + AC_timeStampLimit, <span class="kw2">true</span><span class="br0">)</span> req.<span class="me1">setRequestHeader</span><span class="br0">(</span><span class="st0">'Content-Type'</span>, <span class="st0">'text/xml; charset=utf-8'</span><span class="br0">)</span> req.<span class="me1">send</span><span class="br0">(</span><span class="kw2">null</span><span class="br0">)</span> AC_requestStack++ <span class="br0">}</span> <span class="co1">//nettoie les query-continue et affiche les warnings</span> <span class="kw2">function</span> cleanQueryContinue<span class="br0">(</span>XmlDoc, alertType, data<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> nodes = XmlDoc.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">'query-continue'</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>nodes.<span class="me1">length</span>!=<span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> node = nodes<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> node.<span class="me1">parentNode</span>.<span class="me1">removeChild</span><span class="br0">(</span>node<span class="br0">)</span> addWarning<span class="br0">(</span>alertType, data<span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//cherche les contributions d'ip</span> <span class="kw2">function</span> getHistoriesFromIpContrib<span class="br0">(</span>XmlDoc, Ip<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> XmlContribs = XmlDoc.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">'contributions'</span><span class="br0">)</span> <span class="kw2">var</span> i, len <span class="kw2">var</span> article <span class="kw2">var</span> date <span class="kw1">if</span><span class="br0">(</span>XmlContribs.<span class="me1">length</span>==<span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span> addAlert<span class="br0">(</span><span class="st0">"impossible de trouver les contributions de "</span> + User<span class="br0">)</span> <span class="kw1">return</span> <span class="br0">}</span> XmlContribs = XmlContribs<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">childNodes</span> len = XmlContribs.<span class="me1">length</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>; i<len; i++<span class="br0">)</span> <span class="br0">{</span> date = parseDate<span class="br0">(</span>XmlContribs<span class="br0">[</span>i<span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">timestamp</span>.<span class="me1">value</span><span class="br0">)</span> article = XmlContribs<span class="br0">[</span>i<span class="br0">]</span>.<span class="me1">textContent</span> <span class="kw1">if</span><span class="br0">(</span>AC_dateLimit.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span>> date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span> <span class="kw1">break</span>; <span class="kw1">if</span><span class="br0">(</span>AC_ArticlesWrotten<span class="br0">[</span>article<span class="br0">]</span><span class="br0">)</span> <span class="kw1">continue</span> <span class="kw1">if</span><span class="br0">(</span>article.<span class="me1">length</span> == <span class="nu0">0</span><span class="br0">)</span> <span class="kw1">continue</span> getArticleHistory<span class="br0">(</span>article<span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//prend les contribution d'un utilisateur, et cherche l'historique de tous les articles ou il a contribué</span> <span class="kw2">function</span> getHistoriesFromUserContrib<span class="br0">(</span>XmlDoc, User<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> XmlContribs = XmlDoc.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">'usercontribs'</span><span class="br0">)</span> <span class="kw2">var</span> i, len, article <span class="kw1">if</span><span class="br0">(</span>XmlContribs.<span class="me1">length</span>==<span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span> addAlert<span class="br0">(</span><span class="st0">"impossible de trouver les contributions de "</span> + User<span class="br0">)</span> <span class="kw1">return</span> <span class="br0">}</span> XmlContribs = XmlContribs<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">childNodes</span> <span class="co1">//pour eviter le query-continue</span> len = XmlContribs.<span class="me1">length</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>;i<len;i++<span class="br0">)</span> <span class="br0">{</span> article = XmlContribs<span class="br0">[</span>i<span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">title</span>.<span class="me1">value</span> <span class="kw1">if</span><span class="br0">(</span>AC_ArticlesWrotten<span class="br0">[</span>article<span class="br0">]</span><span class="br0">)</span> <span class="kw1">continue</span> <span class="kw1">if</span><span class="br0">(</span>article.<span class="me1">length</span> == <span class="nu0">0</span><span class="br0">)</span> <span class="kw1">continue</span> getArticleHistory<span class="br0">(</span>article<span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//lance la requete Ajax qui cherche l'historique</span> <span class="kw2">function</span> getArticleHistory<span class="br0">(</span>article<span class="br0">)</span> <span class="br0">{</span> AC_ArticlesWrotten<span class="br0">[</span>article<span class="br0">]</span> = <span class="kw2">true</span> <span class="kw2">var</span> req=<span class="kw2">new</span> XMLHttpRequest<span class="br0">(</span><span class="br0">)</span> req.<span class="me1">article</span> = article req.<span class="me1">onreadystatechange</span> = <span class="kw2">function</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="me1">readyState</span> == <span class="nu0">4</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>req.<span class="kw3">status</span>==<span class="nu0">200</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>!req.<span class="me1">responseXML</span><span class="br0">)</span> addAlert<span class="br0">(</span><span class="st0">"Echec lors de la requete de l'historique de "</span> + req.<span class="me1">article</span><span class="br0">)</span> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw2">var</span> History cleanQueryContinue<span class="br0">(</span>req.<span class="me1">responseXML</span>, AC_HISTORYLIMIT, req.<span class="me1">article</span><span class="br0">)</span> History = req.<span class="me1">responseXML</span>.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">'revisions'</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>History.<span class="me1">length</span> != <span class="nu0">0</span><span class="br0">)</span> <span class="br0">{</span> History = History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">childNodes</span> writeHistory<span class="br0">(</span>History, req.<span class="me1">article</span>, <span class="kw2">true</span><span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> AC_requestStack-- <span class="kw1">if</span><span class="br0">(</span>AC_requestStack==<span class="nu0">0</span><span class="br0">)</span> setPageLocked<span class="br0">(</span><span class="kw2">false</span><span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> req.<span class="kw3">open</span><span class="br0">(</span><span class="st0">"GET"</span>,<span class="st0">"/w/api.php?action=query&titles="</span> + article + <span class="st0">"&format=xml&prop=revisions&rvlimit="</span> + AC_historyLimit + <span class="st0">"&rvend="</span> + AC_timeStampLimit, <span class="kw2">true</span><span class="br0">)</span> req.<span class="me1">setRequestHeader</span><span class="br0">(</span><span class="st0">'Content-Type'</span>, <span class="st0">'text/xml; charset=utf-8'</span><span class="br0">)</span> req.<span class="me1">send</span><span class="br0">(</span><span class="kw2">null</span><span class="br0">)</span> AC_requestStack++ <span class="br0">}</span> <span class="co1">//écrit la liste de suivi</span> <span class="kw2">function</span> writeWatchList<span class="br0">(</span>XmlDoc<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> Histories <span class="kw2">var</span> article, i Histories = XmlDoc.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">'revisions'</span><span class="br0">)</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>;i<Histories.<span class="me1">length</span>;i++<span class="br0">)</span> <span class="br0">{</span> article = Histories<span class="br0">[</span>i<span class="br0">]</span>.<span class="me1">parentNode</span>.<span class="me1">attributes</span>.<span class="me1">title</span>.<span class="me1">value</span> writeHistory<span class="br0">(</span>Histories<span class="br0">[</span>i<span class="br0">]</span>.<span class="me1">childNodes</span>, article, <span class="kw2">false</span><span class="br0">)</span> <span class="co1">//les revisions sont marquées dans le mauvais ordre :( d'ou youngestFirst</span> AC_ArticlesWrotten<span class="br0">[</span>article<span class="br0">]</span> = <span class="kw2">true</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//écrit l'historique de l'article</span> <span class="co1">//youngestFirst a true si l'historique est classé du plus jeune au plus vieux</span> <span class="kw2">function</span> writeHistory<span class="br0">(</span>History, article, youngestFirst<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> table = document.<span class="me1">getElementById</span><span class="br0">(</span><span class="st0">'tablecontrib'</span><span class="br0">)</span> <span class="kw2">var</span> date <span class="kw2">var</span> comment <span class="kw2">var</span> revid <span class="kw2">var</span> user <span class="kw2">var</span> i <span class="kw1">if</span><span class="br0">(</span>History.<span class="me1">length</span>==<span class="nu0">1</span><span class="br0">)</span> <span class="br0">{</span> user = History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">user</span>.<span class="me1">value</span> <span class="kw1">if</span><span class="br0">(</span>History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">comment</span><span class="br0">)</span> comment = History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">comment</span>.<span class="me1">value</span> <span class="kw1">else</span> comment = <span class="st0">""</span> revid = History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">revid</span>.<span class="me1">value</span> date = parseDate<span class="br0">(</span>History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">timestamp</span>.<span class="me1">value</span><span class="br0">)</span> insertLineContrib<span class="br0">(</span>table, date, article, comment, revid, user, youngestFirst<span class="br0">)</span> <span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>youngestFirst<span class="br0">)</span> date = parseDate<span class="br0">(</span>History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">timestamp</span>.<span class="me1">value</span><span class="br0">)</span> <span class="kw1">else</span> date = parseDate<span class="br0">(</span>History<span class="br0">[</span>History.<span class="me1">length</span><span class="nu0">-1</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">timestamp</span>.<span class="me1">value</span><span class="br0">)</span> insertMultipleLineContrib<span class="br0">(</span>table, date, article, History, youngestFirst<span class="br0">)</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//rajoute une ligne html dans le tableau a la bonne place, pour les articles ou on a une seule contrib</span> <span class="co1">//NotFollowed si l'article n'est pas suivi</span> <span class="kw2">function</span> insertLineContrib<span class="br0">(</span>table, date, article, comment, revid, User, NotFollowed<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> row, cell <span class="kw2">var</span> pos <span class="kw2">var</span> strDate = stringDate<span class="br0">(</span>date<span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>!table<span class="br0">[</span>strDate<span class="br0">]</span><span class="br0">)</span> <span class="br0">{</span> table<span class="br0">[</span>strDate<span class="br0">]</span> = <span class="kw2">true</span> insertDateRow<span class="br0">(</span>table, date<span class="br0">)</span> <span class="br0">}</span> pos = getLineJusteBefore<span class="br0">(</span>table, date<span class="br0">)</span> row=table.<span class="me1">insertRow</span><span class="br0">(</span>pos<span class="br0">)</span> row.<span class="me1">style</span>.<span class="me1">whiteSpace</span>=<span class="st0">'nowrap'</span> row.<span class="me1">timeStamp</span> = date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> insertCellsInMainRow<span class="br0">(</span>row, <span class="kw2">false</span>, article, date, revid, revid, NotFollowed, htmlUserLink<span class="br0">(</span>User<span class="br0">)</span>, comment<span class="br0">)</span> <span class="br0">}</span> <span class="kw2">function</span> insertCellsInMainRow<span class="br0">(</span>row, expand, article, date, revid, oldid, NotFollowed, userStr, comment<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell <span class="kw1">if</span><span class="br0">(</span>expand<span class="br0">)</span> insertCellHTML<span class="br0">(</span>row, htmlExpandLink<span class="br0">(</span>article<span class="br0">)</span><span class="br0">)</span> <span class="kw1">else</span> insertCellText<span class="br0">(</span>row, <span class="st0">""</span><span class="br0">)</span> insertCellText<span class="br0">(</span>row, stringHour<span class="br0">(</span>date<span class="br0">)</span><span class="br0">)</span> insertHistCell<span class="br0">(</span>row, article<span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>expand<span class="br0">)</span> insertMultipleDiffCell<span class="br0">(</span>row, article, revid, oldid<span class="br0">)</span> <span class="kw1">else</span> insertDiffCell<span class="br0">(</span>row, article, revid<span class="br0">)</span> insertEditCell<span class="br0">(</span>row,article<span class="br0">)</span> insertCellHTML<span class="br0">(</span>row, htmlDeleteLink<span class="br0">(</span>article<span class="br0">)</span><span class="br0">)</span> insertArticleCell<span class="br0">(</span>row, article, !NotFollowed<span class="br0">)</span> cell=insertCellHTML<span class="br0">(</span>row, <span class="st0">"["</span> + userStr + <span class="st0">"]"</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>comment.<span class="me1">length</span> == <span class="nu0">0</span><span class="br0">)</span> cell.<span class="me1">colSpan</span> = <span class="nu0">2</span> <span class="kw1">else</span> insertCellHTML<span class="br0">(</span>row, wikiParse<span class="br0">(</span>comment<span class="br0">)</span><span class="br0">)</span> <span class="br0">}</span> <span class="co1">//cree le sous tableau</span> <span class="co1">//youngestFirst a true si l'historique est classé du plus jeune au plus vieux</span> <span class="kw2">function</span> insertMultipleLineContrib<span class="br0">(</span>table, date, article, History, youngestFirst<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> pos <span class="kw2">var</span> strDate = stringDate<span class="br0">(</span>date<span class="br0">)</span> <span class="kw2">var</span> subtable = document.<span class="me1">createElement</span><span class="br0">(</span><span class="st0">"table"</span><span class="br0">)</span> <span class="kw2">var</span> subcell, subrow, mainrow <span class="kw2">var</span> user <span class="kw2">var</span> userList = <span class="kw2">new</span> Object<span class="br0">(</span><span class="br0">)</span> <span class="kw2">var</span> first = <span class="kw2">true</span> <span class="kw2">var</span> usersStr <span class="kw2">var</span> oldid, revid <span class="kw1">if</span><span class="br0">(</span>!table<span class="br0">[</span>strDate<span class="br0">]</span><span class="br0">)</span> <span class="br0">{</span> table<span class="br0">[</span>strDate<span class="br0">]</span> = <span class="kw2">true</span> insertDateRow<span class="br0">(</span>table, date<span class="br0">)</span> <span class="br0">}</span> pos = getLineJusteBefore<span class="br0">(</span>table, date<span class="br0">)</span> <span class="co1">//la ligne qui contient le tableau</span> subrow=table.<span class="me1">insertRow</span><span class="br0">(</span>pos<span class="br0">)</span> subrow.<span class="me1">style</span>.<span class="me1">whiteSpace</span>=<span class="st0">'nowrap'</span> subrow.<span class="me1">timeStamp</span> = date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> insertCellHTML<span class="br0">(</span>subrow,<span class="st0">""</span><span class="br0">)</span> subcell=insertCellHTML<span class="br0">(</span>subrow, <span class="st0">""</span><span class="br0">)</span> subcell.<span class="me1">colSpan</span>=<span class="nu0">8</span> subtable.<span class="me1">cellPadding</span> = <span class="nu0">0</span> subtable.<span class="me1">cellSpacing</span> = <span class="nu0">0</span> subtable.<span class="me1">id</span> = <span class="st0">'_ACH_'</span> + article subtable.<span class="me1">style</span>.<span class="me1">display</span>=<span class="st0">'none'</span> <span class="kw1">if</span><span class="br0">(</span>youngestFirst<span class="br0">)</span> <span class="br0">{</span> revid = History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">revid</span>.<span class="me1">value</span> oldid = History<span class="br0">[</span>History.<span class="me1">length</span><span class="nu0">-1</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">revid</span>.<span class="me1">value</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>;i!=History.<span class="me1">length</span>;i++<span class="br0">)</span> <span class="br0">{</span> user = insertLineSubContrib<span class="br0">(</span>subtable, article, History<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>userList<span class="br0">[</span>user<span class="br0">]</span><span class="br0">)</span> userList<span class="br0">[</span>user<span class="br0">]</span>++ <span class="kw1">else</span> userList<span class="br0">[</span>user<span class="br0">]</span> = <span class="nu0">1</span> <span class="br0">}</span> <span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span> revid = History<span class="br0">[</span>History.<span class="me1">length</span><span class="nu0">-1</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">revid</span>.<span class="me1">value</span> oldid = History<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">attributes</span>.<span class="me1">revid</span>.<span class="me1">value</span> <span class="kw1">for</span><span class="br0">(</span>i=History.<span class="me1">length</span><span class="nu0">-1</span>;i>=<span class="nu0">0</span>;i--<span class="br0">)</span> <span class="br0">{</span> user = insertLineSubContrib<span class="br0">(</span>subtable, article, History<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>userList<span class="br0">[</span>user<span class="br0">]</span><span class="br0">)</span> userList<span class="br0">[</span>user<span class="br0">]</span>++ <span class="kw1">else</span> userList<span class="br0">[</span>user<span class="br0">]</span> = <span class="nu0">1</span> <span class="br0">}</span> <span class="br0">}</span> <span class="co1">//et on écrit la ligne principale, maintenant qu'on a les users</span> usersStr = <span class="st0">""</span> <span class="kw1">for</span><span class="br0">(</span>user <span class="kw1">in</span> userList<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>!first<span class="br0">)</span> usersStr = usersStr + <span class="st0">"; "</span> <span class="kw1">else</span> first = <span class="kw2">false</span> usersStr = usersStr + htmlUserPageLink<span class="br0">(</span>user<span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>userList<span class="br0">[</span>user<span class="br0">]</span> != <span class="nu0">1</span><span class="br0">)</span> usersStr = usersStr + <span class="st0">" ("</span> +userList<span class="br0">[</span>user<span class="br0">]</span> + <span class="st0">"x)"</span> <span class="br0">}</span> mainrow=table.<span class="me1">insertRow</span><span class="br0">(</span>pos<span class="br0">)</span> mainrow.<span class="me1">style</span>.<span class="me1">whiteSpace</span>=<span class="st0">'nowrap'</span> mainrow.<span class="me1">timeStamp</span> = date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> insertCellsInMainRow<span class="br0">(</span>mainrow, <span class="kw2">true</span>, article, date, revid, oldid, youngestFirst, usersStr, <span class="st0">""</span><span class="br0">)</span> subcell.<span class="me1">appendChild</span><span class="br0">(</span>subtable<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//line de contribution d'un article, retourne l'user</span> <span class="kw2">function</span> insertLineSubContrib<span class="br0">(</span>table, article, revision<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> row =table.<span class="me1">insertRow</span><span class="br0">(</span><span class="nu0">-1</span><span class="br0">)</span> <span class="kw2">var</span> date = parseDate<span class="br0">(</span>revision.<span class="me1">attributes</span>.<span class="me1">timestamp</span>.<span class="me1">value</span><span class="br0">)</span> <span class="kw2">var</span> user = revision.<span class="me1">attributes</span>.<span class="me1">user</span>.<span class="me1">value</span> <span class="kw2">var</span> revid = revision.<span class="me1">attributes</span>.<span class="me1">revid</span>.<span class="me1">value</span> <span class="kw2">var</span> comment = <span class="st0">""</span> <span class="kw1">if</span><span class="br0">(</span>revision.<span class="me1">attributes</span>.<span class="me1">comment</span><span class="br0">)</span> comment = revision.<span class="me1">attributes</span>.<span class="me1">comment</span>.<span class="me1">value</span> insertCellHTML<span class="br0">(</span>row, <span class="st0">"&nbsp;&nbsp;&nbsp;"</span><span class="br0">)</span> insertRevisionCell<span class="br0">(</span>row, article, date, revid<span class="br0">)</span> insertDiffCell<span class="br0">(</span>row, article, revid<span class="br0">)</span> insertCellHTML<span class="br0">(</span>row, htmlUserLink<span class="br0">(</span>user<span class="br0">)</span><span class="br0">)</span> insertCellHTML<span class="br0">(</span>row, wikiParse<span class="br0">(</span>comment<span class="br0">)</span><span class="br0">)</span> <span class="kw1">return</span> user <span class="br0">}</span> <span class="co1">//affiche/cache un historique</span> <span class="kw2">function</span> expandHistory<span class="br0">(</span>article<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> table = document.<span class="me1">getElementById</span><span class="br0">(</span><span class="st0">'_ACH_'</span> + article<span class="br0">)</span> <span class="kw1">if</span><span class="br0">(</span>!table<span class="br0">)</span> <span class="kw1">return</span> <span class="kw1">if</span><span class="br0">(</span>table.<span class="me1">style</span>.<span class="me1">display</span>==<span class="st0">'none'</span><span class="br0">)</span> table.<span class="me1">style</span>.<span class="me1">display</span> = <span class="st0">'inline'</span> <span class="kw1">else</span> table.<span class="me1">style</span>.<span class="me1">display</span> = <span class="st0">'none'</span> <span class="br0">}</span> <span class="co1">//lien qui affiche/cache la table de l'historique d'un article</span> <span class="kw2">function</span> htmlExpandLink<span class="br0">(</span>article<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="st0">'<a title="expand" href="javascript:expandHistory(<span class="es0">\'</span>'</span> + article.<span class="me1">replace</span><span class="br0">(</span>/<span class="st0">'/, "<span class="es0">\\</span>'</span><span class="st0">") + '<span class="es0">\'</span>)"</span>>#</a><span class="st0">' } //rajoute une ligne avec la date function insertDateRow(table, date) { var localDate = new Date() localDate.setTime(date.getTime()) localDate.setHours(23, 59, 59, 999) var pos = getLineJusteBefore(table, localDate) var row =table.insertRow(pos) var cell = row.insertCell(-1) row.timeStamp = localDate.getTime() cell.colSpan=8 cell.style.paddingTop= '</span>6px<span class="st0">' cell.style.borderBottom = '</span>1px solid blue<span class="st0">' cell.innerHTML = "<b>" + stringDate(date) + "</b>" } //cherche la position pour l'</span>insertion, y<span class="st0">'a plus qu'</span>a faire une recherche dichotomique. <span class="me1">Un</span> bisou à celui qui le fait :-<span class="br0">)</span> <span class="kw2">function</span> getLineJusteBefore<span class="br0">(</span>table, date<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> i; <span class="kw2">var</span> timeStamp = date.<span class="me1">getTime</span><span class="br0">(</span><span class="br0">)</span> <span class="kw1">for</span><span class="br0">(</span>i=<span class="nu0">0</span>; i<table.<span class="me1">rows</span>.<span class="me1">length</span>;i++<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">if</span><span class="br0">(</span>timeStamp > table.<span class="me1">rows</span><span class="br0">[</span>i<span class="br0">]</span>.<span class="me1">timeStamp</span><span class="br0">)</span> <span class="kw1">return</span> i <span class="br0">}</span> <span class="kw1">return</span> i <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec de l'html dedans</span> <span class="kw2">function</span> insertCellHTML<span class="br0">(</span>row, innerHTML<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=row.<span class="me1">insertCell</span><span class="br0">(</span><span class="nu0">-1</span><span class="br0">)</span> cell.<span class="me1">style</span>.<span class="me1">paddingRight</span>=<span class="st0">'3px'</span> cell.<span class="me1">innerHTML</span> = innerHTML cell.<span class="me1">style</span>.<span class="me1">width</span>=<span class="st0">'0%'</span> <span class="kw1">return</span> cell <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec du texte dedans</span> <span class="kw2">function</span> insertCellText<span class="br0">(</span>row, Text<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=row.<span class="me1">insertCell</span><span class="br0">(</span><span class="nu0">-1</span><span class="br0">)</span> cell.<span class="me1">style</span>.<span class="me1">paddingRight</span>=<span class="st0">'3px'</span> cell.<span class="me1">textContent</span> = Text cell.<span class="me1">style</span>.<span class="me1">width</span>=<span class="st0">'0%'</span> <span class="kw1">return</span> cell <span class="br0">}</span> <span class="co1">//renvoi le nom du mois</span> <span class="kw2">function</span> getMonthName<span class="br0">(</span>m<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">switch</span><span class="br0">(</span>m<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">case</span> <span class="nu0">0</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"janvier"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">1</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"février"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">2</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"mars"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">3</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"avril"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">4</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"mai"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">5</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"juin"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">6</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"juillet"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">7</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"août"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">8</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"septembre"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">9</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"octobre"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">10</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"novembre"</span><span class="br0">}</span> <span class="kw1">case</span> <span class="nu0">11</span>: <span class="br0">{</span><span class="kw1">return</span> <span class="st0">"décembre"</span><span class="br0">}</span> <span class="br0">}</span> <span class="kw1">return</span> <span class="st0">""</span> <span class="br0">}</span> <span class="co1">//renoi une chaine de caractère avec l'heure</span> <span class="kw2">function</span> stringHour<span class="br0">(</span>d<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> toNString<span class="br0">(</span>d.<span class="me1">getHours</span><span class="br0">(</span><span class="br0">)</span>,<span class="nu0">2</span><span class="br0">)</span> + <span class="st0">"h"</span> + toNString<span class="br0">(</span>d.<span class="me1">getMinutes</span><span class="br0">(</span><span class="br0">)</span>, <span class="nu0">2</span><span class="br0">)</span> <span class="br0">}</span> <span class="co1">//renoi une chaine de caractère avec la date</span> <span class="kw2">function</span> stringDate<span class="br0">(</span>d<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> d.<span class="me1">getDate</span><span class="br0">(</span><span class="br0">)</span> + <span class="st0">" "</span> + getMonthName<span class="br0">(</span>d.<span class="me1">getMonth</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span> + <span class="st0">" "</span> + d.<span class="me1">getFullYear</span><span class="br0">(</span><span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec un anchor hist dedans</span> <span class="kw2">function</span> insertHistCell<span class="br0">(</span>row, article<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = <span class="st0">'historique'</span> cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">'/w/index.php?title='</span> + encodeURIComponent<span class="br0">(</span>article<span class="br0">)</span> + <span class="st0">'&action=history'</span> cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = <span class="st0">'(hist)'</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec un anchor vers une version précise</span> <span class="kw2">function</span> insertRevisionCell<span class="br0">(</span>row, article, date, revid<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = <span class="st0">'Version'</span> cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">"/w/index.php?title="</span> + encodeURIComponent<span class="br0">(</span>article<span class="br0">)</span> + <span class="st0">"&oldid="</span> + revid cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = stringHour<span class="br0">(</span>date<span class="br0">)</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec un anchor vers un diff multipple</span> <span class="kw2">function</span> insertMultipleDiffCell<span class="br0">(</span>row, article, revid, oldid<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = <span class="st0">'diff'</span> cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">"/w/index.php?title="</span> + encodeURIComponent<span class="br0">(</span>article<span class="br0">)</span> + <span class="st0">"&diff="</span> + revid + <span class="st0">"&oldid="</span> + oldid + <span class="st0">"&direction=prev"</span> cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = <span class="st0">"(diff)"</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec un anchor vers un diff</span> <span class="kw2">function</span> insertDiffCell<span class="br0">(</span>row, article, oldid<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = <span class="st0">'diff'</span> cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">"/w/index.php?title="</span> + encodeURIComponent<span class="br0">(</span>article<span class="br0">)</span> + <span class="st0">"&diff=prev&oldid="</span> + oldid cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = <span class="st0">"(diff)"</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellull formatée avec un lien édit</span> <span class="kw2">function</span> insertEditCell<span class="br0">(</span>row, article<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = <span class="st0">"éditer"</span> cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">"/w/index.php?title="</span> + encodeURIComponent<span class="br0">(</span>article<span class="br0">)</span> + <span class="st0">"&action=edit"</span> cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = <span class="st0">"(edit)"</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellull formatée avec un lien édit</span> <span class="kw2">function</span> insertRevertCell<span class="br0">(</span>row, article, token<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = <span class="st0">"Reverter"</span> cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">"/w/index.php?title="</span> + encodeURIComponent<span class="br0">(</span>article<span class="br0">)</span> + <span class="st0">"&action=rollback&from="</span> + encodeURIComponent<span class="br0">(</span>wgUserName<span class="br0">)</span> + <span class="st0">"&token="</span> + token cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = <span class="st0">"(revert)"</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//insere une cellule formatée avec un anchor vers un article</span> <span class="kw2">function</span> insertArticleCell<span class="br0">(</span>row, article, redBorder<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> cell=AC_CellWithAnchor.<span class="me1">cloneNode</span><span class="br0">(</span><span class="kw2">true</span><span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">title</span> = article cell.<span class="me1">firstChild</span>.<span class="me1">href</span> = <span class="st0">"/wiki/"</span> + article <span class="kw1">if</span><span class="br0">(</span>article.<span class="me1">length</span>><span class="nu0">90</span><span class="br0">)</span> article = article.<span class="me1">substring</span><span class="br0">(</span><span class="nu0">0</span>,<span class="nu0">87</span><span class="br0">)</span> + <span class="st0">'...'</span> cell.<span class="me1">firstChild</span>.<span class="me1">textContent</span> = article <span class="kw1">if</span><span class="br0">(</span>redBorder<span class="br0">)</span> cell.<span class="me1">firstChild</span>.<span class="me1">style</span>.<span class="me1">borderBottom</span> = <span class="st0">'1px solid red'</span> row.<span class="me1">appendChild</span><span class="br0">(</span>cell<span class="br0">)</span> <span class="br0">}</span> <span class="co1">//lien vers un article</span> <span class="kw2">function</span> htmlArticleLink<span class="br0">(</span>article<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> <span class="st0">"<a title='"</span> + article.<span class="me1">replace</span><span class="br0">(</span>/<span class="st0">'/, "<span class="es0">\\</span>'</span><span class="st0">") + "</span><span class="st0">' href='</span><span class="re0">/wiki/</span><span class="st0">" + encodeURIComponent(article).replace(/'/, "</span>\\<span class="st0">'") + "'</span>><span class="st0">" + article + "</span></a><span class="st0">" } //lien delete function htmlDeleteLink(article) { if (AC_displayDeleteLink) return "</span><a title=<span class="st0">'supprimer'</span> href=<span class="st0">'/w/index.php?title=" + encodeURIComponent(article).replace(/'</span>/, <span class="st0">"<span class="es0">\\</span>'"</span><span class="br0">)</span> + <span class="st0">"&action=delete'>"</span> + <span class="st0">"<img width='14' height='14' style='margin-top:2px' src='http://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Crystal_error.png/14px-Crystal_error.png' longdesc='/wiki/Image:Crystal_error.png'/></a>"</span> <span class="kw1">return</span> <span class="st0">""</span> <span class="br0">}</span> <span class="co1">//lien user</span> <span class="kw2">function</span> htmlUserLink<span class="br0">(</span>User<span class="br0">)</span> <span class="br0">{</span> <span class="kw2">var</span> UserURI = encodeURIComponent<span class="br0">(</span>User<span class="br0">)</span>.<span class="me1">replace</span><span class="br0">(</span>/<span class="st0">'/, "<span class="es0">\\</span>'</span><span class="st0">") return htmlUserPageLink(User) + "</span><small>&nbsp;<span class="br0">(</span><span class="st0">" + "</span><a href=<span class="st0">'/wiki/Discussion_Utilisateur:" + UserURI + "'</span>>d</a>&nbsp;<span class="st0">" + "</span><a href=<span class="st0">'/wiki/Special:Contributions/" + UserURI + "'</span>>c</a>&nbsp;<span class="st0">" + "</span><a href=<span class="st0">'/wiki/Special:Blockip/" + UserURI + "'</span>>b<<span class="re0">/a><span class="br0">)</span></</span>small><span class="st0">" } //lien page user, souligne en rouge si suivi function htmlUserPageLink(User) { return "</span><a title=<span class="st0">'Utilisateur:" + User.replace("'</span><span class="st0">", "</span>\\<span class="st0">'") + "'</span> href=<span class="st0">'/wiki/Utilisateur:" + encodeURIComponent(User.replace("'</span><span class="st0">", "</span>\\<span class="st0">'")) + "'</span> <span class="st0">" + iif(AC_BlackList.indexOf(User)!=-1, "</span>style=<span class="st0">'border-bottom:1px solid red'</span><span class="st0">","</span><span class="st0">") + "</span>><span class="st0">" + User + "</span></a><span class="st0">" }</span></pre></div><div class="printfooter"> </div> <!-- end content --> <div class="visualClear"></div> </div> </div> </div> <div id="column-one"> <div id="p-cactions" class="portlet"> <h5>Views</h5> <ul> <li id="ca-nstab-user" class="selected" ><a href="../../../../articles/b/i/b/Utilisateur%7EBibifricotin_Monobook.js_82d3.html">Page utilisateur</a></li><li id="ca-talk" class="new" ><a href="../../../../articles/b/i/b/Discussion_Utilisateur%7EBibifricotin_Monobook.js_975e.html">Discussion</a></li><li id="ca-current" ><a href="http://fr.wikipedia.org/wiki/Utilisateur:Bibifricotin/Monobook.js">Version actuelle</a></li> </ul> </div> <div class="portlet" id="p-logo"> <a style="background-image: url(../../../../misc/Wiki.png);" href="../../../../index.html" title="Accueil"></a> </div> <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> <div class='portlet' id='p-navigation'> <h5>Navigation</h5> <div class='pBody'> <ul> <li id="n-mainpage"><a href="../../../../index.html">Accueil</a></li> <li id="n-thema"><a href="../../../../articles/a/c/c/Portail%7EAccueil_bcc9.html">Portails thématiques</a></li> <li id="n-alphindex"><a href="../../../../articles/t/o/u/Special%7EToutes_les_pages_fabc.html">Index alphabétique</a></li> <li id="n-randompage"><a href="../../../../articles/p/a/g/Special%7EPage_au_hasard_9c81.html">Un article au hasard</a></li> <li id="n-contact"><a href="../../../../articles/c/o/n/Wikip%C3%A9dia%7EContact_929e.html">Contacter Wikipédia</a></li> </ul> </div> </div> <div class='portlet' id='p-Contribuer'> <h5>Contribuer</h5> <div class='pBody'> <ul> <li id="n-help"><a href="../../../../articles/s/o/m/Aide%7ESommaire_c9f0.html">Aide</a></li> <li id="n-portal"><a href="../../../../articles/a/c/c/Wikip%C3%A9dia%7EAccueil_5272.html">Communauté</a></li> <li id="n-recentchanges"><a href="../../../../articles/m/o/d/Special%7EModifications_r%C3%A9centes_b222.html">Modifications récentes</a></li> <li id="n-aboutwp"><a href="../../../../articles/a/c/c/Wikip%C3%A9dia%7EAccueil_des_nouveaux_arrivants_0784.html">Accueil des nouveaux arrivants</a></li> <li id="n-sitesupport"><a href="http://meta.wikimedia.org/wiki/Faire_un_don:_explication">Faire un don</a></li> </ul> </div> </div> <div id="p-search" class="portlet"> <h5><label for="searchInput">Rechercher</label></h5> <div id="searchBody" class="pBody"> <form action="javascript:goToStatic(3)" id="searchform"><div> <input id="searchInput" name="search" type="text" accesskey="C" value="" /> <input type='submit' name="go" class="searchButton" id="searchGoButton" value="Aller" /> </div></form> </div> </div> </div><!-- end of the left (by default at least) column --> <div class="visualClear"></div> <div id="footer"> <div id="f-poweredbyico"><a href="http://www.mediawiki.org/"><img src="../../../../skins/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" /></a></div> <div id="f-copyrightico"><a href="http://wikimediafoundation.org/"><img src="../../../../misc/wikimedia-button.png" border="0" alt="Wikimedia Foundation"/></a></div> <ul id="f-list"> <li id="f-credits">Cette page a été modifiée pour la dernière fois le 15 août 2007 à 22:40 par Utilisateur Bibifricotin. </li> <li id="f-copyright"><span style="white-space:normal"><a class="internal" href="http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Droit_d'auteur" title="Droit d'auteur">Droit d'auteur</a> : Tous les textes sont disponibles sous les termes de la <a class="internal" href="http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Licence_de_documentation_libre_GNU" title="GFDL">licence de documentation libre GNU</a> (GFDL).<br/> Wikipedia® est une marque déposée de la <a href="http://wikimediafoundation.org/wiki/Accueil" title="Wikimedia Foundation">Wikimedia Foundation, Inc.</a>, organisation de bienfaisance régie par le paragraphe <a class="internal" href="http://en.wikipedia.org/wiki/501(c)" title="501(c)">501(c)(3)</a> du code fiscal des États-Unis.</span><br/></li> <li id="f-about"><a href="../../../../articles/%C3%A0/_/p/Wikip%C3%A9dia%7E%C3%80_propos_5de1.html" title="Wikipédia:À propos">À propos de Wikipédia</a></li> <li id="f-disclaimer"><a href="../../../../articles/a/v/e/Wikip%C3%A9dia%7EAvertissements_g%C3%A9n%C3%A9raux_fef1.html" title="Wikipédia:Avertissements généraux">Avertissements</a></li> </ul> </div> </div> </body> </html>