|
|
(2 versions intermédiaires par le même utilisateur non affichées) |
Ligne 1 : |
Ligne 1 : |
| /* Préface aux éditeurs : | | <form id="newQuestionForm" onsubmit="return postNewQuestion();"> |
| La documentation de cette page en [[JavaScript]] peut être lue
| | <label for="questionTitle">Titre de votre question :</label> |
| facilement en l’incluant comme un modèle depuis une page wiki.
| | <input type="text" id="questionTitle" name="questionTitle" required><br> |
| | <label for="questionBody">Détaillez votre question :</label> |
| | <textarea id="questionBody" name="questionBody" required></textarea><br> |
| | <input type="submit" value="Poser la question"> |
| | </form> |
|
| |
|
| Merci de faire de votre mieux pour respecter cette contrainte,
| | <script> |
| par l’utilisation de balises adaptées et de texte commenté, en
| | function postNewQuestion() { |
| JavaScript et en Wikitexte.
| | var title = document.getElementById('questionTitle').value; |
| | | var body = document.getElementById('questionBody').value; |
| == Boîtes déroulantes ==
| | var fullContent = `== ${title} ==\n{{Discussion|titre=${title}|question=${body}|réponse=}}\n`; |
| | | postContent(fullContent); |
| <!-- */ | | return false; |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| // set up the words in your language
| |
| var NavigationBarHide = '[masquer]';
| |
| var NavigationBarShow = '[afficher]';
| |
| | |
| var NavigationBarShowDefault = 0;
| |
| | |
| // shows and hides content and picture (if available) of navigation bars
| |
| // Parameters:
| |
| // indexNavigationBar: the index of navigation bar to be toggled
| |
| function toggleNavigationBar(indexNavigationBar) | |
| { | |
| var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | |
| var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | |
| | |
| if (!NavFrame || !NavToggle) {
| |
| return false;
| |
| }
| |
| | |
| // ajout par Dake
| |
| // permet de créer un titre en lieu et place du "Dérouler" grâce
| |
| // à l'attribut "title" du tag.
| |
| var ShowText;
| |
| | |
| if (NavFrame.title == undefined || NavFrame.title.length == 0 ) {
| |
| ShowText = NavigationBarShow;
| |
| } else {
| |
| ShowText = NavFrame.title;
| |
| } | |
| | |
| // if shown now
| |
| if (NavToggle.firstChild.data == NavigationBarHide) {
| |
| for(
| |
| var NavChild = NavFrame.firstChild;
| |
| NavChild != null;
| |
| NavChild = NavChild.nextSibling
| |
| ) {
| |
| if (NavChild.className == 'NavPic') {
| |
| NavChild.style.display = 'none';
| |
| }
| |
| if (NavChild.className == 'NavContent') {
| |
| NavChild.style.display = 'none';
| |
| }
| |
| if (NavChild.className == 'NavToggle') {
| |
| NavChild.firstChild.data = ShowText;
| |
| }
| |
| }
| |
| | |
| // if hidden now
| |
| } else if (NavToggle.firstChild.data == ShowText) {
| |
| for(
| |
| var NavChild = NavFrame.firstChild;
| |
| NavChild != null;
| |
| NavChild = NavChild.nextSibling
| |
| ) {
| |
| if (NavChild.className == 'NavPic') {
| |
| NavChild.style.display = 'block';
| |
| }
| |
| if (NavChild.className == 'NavContent') {
| |
| NavChild.style.display = 'block';
| |
| }
| |
| if (NavChild.className == 'NavToggle') {
| |
| NavChild.firstChild.data = NavigationBarHide;
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| // adds show/hide-button to navigation bars
| |
| function createNavigationBarToggleButton()
| |
| {
| |
| var indexNavigationBar = 0;
| |
| // iterate over all < div >-elements | |
| for(
| |
| var i=0;
| |
| NavFrame = document.getElementsByTagName("div")[i];
| |
| i++
| |
| ) { | |
| // if found a navigation bar
| |
| if (NavFrame.className == "NavFrame") {
| |
| | |
| indexNavigationBar++;
| |
| var NavToggle = document.createElement("a");
| |
| NavToggle.className = 'NavToggle';
| |
| NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
| |
| NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
| |
| | |
| var NavToggleText = document.createTextNode(NavigationBarHide);
| |
| NavToggle.appendChild(NavToggleText);
| |
| | |
| // add NavToggle-Button as first div-element
| |
| // in < div class="NavFrame" >
| |
| NavFrame.insertBefore(
| |
| NavToggle,
| |
| NavFrame.firstChild
| |
| );
| |
| NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
| |
| }
| |
| }
| |
| // if more Navigation Bars found than Default: hide all
| |
| if (NavigationBarShowDefault < indexNavigationBar) {
| |
| for (
| |
| var i=1;
| |
| i<=indexNavigationBar;
| |
| i++
| |
| ) {
| |
| toggleNavigationBar(i);
| |
| }
| |
| }
| |
| }
| |
| | |
| $(createNavigationBarToggleButton);
| |
| | |
| // fin de la section "Dynamic Navigation Bars"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| == Réécriture du titre ==
| |
| | |
| Cette fonction fait fonctionner le [[modèle : Titre]] qui sert
| |
| à réécrire (pas juste mettre en forme) le titre d’une page, et
| |
| qui ne devrait que très rarement être utilisé. Idéalement, les
| |
| très rares cas de l’encyclopédie ayant ce besoin utiliseraient
| |
| un modèle différent, qui expliquerait la chose par sous-titre.
| |
| | |
| La fonction attend le code html :<syntaxhighlight lang="html">
| |
| <div id="RealTitleBanner">
| |
| <span id="RealTitle">title</span>
| |
| </div></syntaxhighlight>
| |
| avec l’élément <code>#RealTitleBanner</code> qui finira caché.
| |
| | |
| Un élément <code>#DisableRealTitle</code> désactive tout cela.
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| rewritePageH1 = function() {
| |
| try {
| |
| var realTitleBanner = document.getElementById("RealTitleBanner");
| |
| if (realTitleBanner) {
| |
| if (!document.getElementById("DisableRealTitle")) {
| |
| var realTitle = document.getElementById("RealTitle");
| |
| var h1 = document.getElementsByTagName("h1")[0];
| |
| if (realTitle && h1) {
| |
| h1.innerHTML = realTitle.innerHTML;
| |
| realTitleBanner.style.display = "none";
| |
| }
| |
| }
| |
| }
| |
| } catch (e) {
| |
| /* Something went wrong. */
| |
| }
| |
| } | | } |
| $(rewritePageH1);
| |
|
| |
| // fin de la section "Réécriture du titre"</syntaxhighlight><!--
| |
| /* -->
| |
|
| |
|
| == Préchargement de Special:upload == | | function postContent(content) { |
| | var apiUrl = mw.config.get('wgScriptPath') + '/api.php'; |
| | var editToken = mw.user.tokens.get('csrfToken'); |
| | var pageTitle = mw.config.get('wgPageName'); |
|
| |
|
| <!-- */
| | var params = { |
| // --><syntaxhighlight lang="javascript">
| | action: 'edit', |
| | title: pageTitle, |
| | appendtext: content, |
| | token: editToken, |
| | format: 'json' |
| | }; |
|
| |
|
| function loadAutoInfomationTemplate()
| | mw.Api.post(apiUrl, params, function(data) { |
| {
| | if (data && data.edit && data.edit.result == 'Success') { |
| uploadDescription = document.getElementById('wpUploadDescription');
| | window.location.reload(); // Reload the page to show the new question |
| var tripleTilda = '~~' + '~'; | |
| var doubleBracket = '{' + '{';
| |
| if(uploadDescription != null && mw.config.get('wgUserLanguage') != 'fromflickr' && mw.config.get('wgUserLanguage') != 'fromwikimedia' && mw.config.get('wgUserLanguage') != 'fromgov') {
| |
| uploadDescription.focus();
| |
| switch(mw.config.get('wgUserLanguage')) {
| |
| default:
| |
| uploadDescription.value = doubleBracket + 'Information image\n | Description = \n | Source = \n | Auteur = \n | Date = \n}}\n\n[[Catégorie:Image thème inconnu]]';
| |
|
| |
| break;
| |
| }
| |
| }
| |
| }
| |
| $(loadAutoInfomationTemplate);
| |
| | |
| // fin de la section "Préchargement de Special:upload"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| == OpenStreetMap ==
| |
| Le code OpenStreetMap est dérivé de celui publié pour Wikipedia
| |
| par [[:wp:Utilisateur:Magnus Manske|Magnus Manske]], en 2008,
| |
| sous [[Licence publique générale GNU|licence GPL]].
| |
| | |
| Il comprend deux fonctions usuelles pour gérer un cadre :
| |
| * une pour le déplacer,
| |
| * une pour le redimensionner ;
| |
| aidées par trois autres :
| |
| * une pour tester le navigateur,
| |
| * deux pour obtenir largeur et hauteur de l’écran.
| |
| Voir page de discussion.
| |
| | |
| === Test du navigateur ===
| |
| | |
| * Renvoie true si le navigateur est Internet Explorer
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function MoveResizeAbsolute_NavIsIE(){ | |
| var agt=navigator.userAgent.toLowerCase();
| |
| var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
| |
| return is_ie;
| |
| }
| |
| | |
| // fin de la sous-section "Test du navigateur"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Largeur de l’écran ===
| |
| * Renvoie la largeur de l’écran (en pixels)
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function MoveResizeAbsolute_GetScreenWidth(){
| |
| if(MoveResizeAbsolute_NavIsIE()){
| |
| var ScreenWidth = parseInt(screen.width);
| |
| }else{
| |
| var ScreenWidth = parseInt(window.innerWidth);
| |
| }
| |
| return ScreenWidth;
| |
| }
| |
| | |
| // fin de la sous-section "Largeur de l’écran"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Hauteur de l’écran ===
| |
| * Renvoie la hauteur de l’écran (en pixels)
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function MoveResizeAbsolute_GetScreenHeight(){
| |
| if(MoveResizeAbsolute_NavIsIE()){
| |
| var ScreenHeight = parseInt(screen.height);
| |
| }else{
| |
| var ScreenHeight = parseInt(window.innerHeight);
| |
| }
| |
| return ScreenHeight;
| |
| }
| |
| | |
| // fin de la sous-section "Hauteur de l’écran"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Déplacement du cadre ===
| |
| | |
| Transforme un élément en ancre pour bouger un autre élément (en position fixed)
| |
| * elementArea = élément ancre (obligatoire)
| |
| * elementsToMove = éléments à bouger (obligatoire)
| |
| * LeftLimit = limite gauche, en pixel (facultatif)
| |
| * TopLimit = limite haut, en pixel (facultatif)
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function MoveResizeAbsolute_AddMoveArea(elementArea, elementsToMove, LeftLimit, TopLimit){
| |
| if((!elementArea)||(!elementsToMove)) return;
| |
| elementArea.onmousedown=function(event) {
| |
| var monbody = document.body;
| |
| if(!event) { event = window.event; }
| |
| if(MoveResizeAbsolute_NavIsIE()){
| |
| positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
| |
| positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
| |
| }else{
| |
| positionSouris_X = parseInt( event.pageX );
| |
| positionSouris_Y = parseInt( event.pageY );
| |
| }
| |
| for (var a=0;a<elementsToMove.length;a++){
| |
| elementsToMove[a].initialX = parseInt( positionSouris_X - elementsToMove[a].offsetLeft);
| |
| elementsToMove[a].initialY = parseInt( positionSouris_Y - elementsToMove[a].offsetTop);
| |
| elementsToMove[a].style.opacity = '.8';
| |
| }
| |
| monbody.onmousemove = function(event) {
| |
| if(!event) { event = window.event; }
| |
| if(MoveResizeAbsolute_NavIsIE()){
| |
| positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
| |
| positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
| |
| }else{
| |
| positionSouris_X = parseInt( event.pageX );
| |
| positionSouris_Y = parseInt( event.pageY );
| |
| }
| |
| var LeftLimitDone = false;
| |
| var TopLimitDone = false;
| |
| for(var a=0;a<elementsToMove.length;a++){
| |
| PositionGauche = parseInt( positionSouris_X ) - elementsToMove[a].initialX;
| |
| PositionHaut = parseInt(positionSouris_Y ) - elementsToMove[a].initialY;
| |
| if(LeftLimit){
| |
| if(LeftLimit[a]|| LeftLimit[a]==0){
| |
| if( PositionGauche < parseInt(LeftLimit[a])){
| |
| PositionGauche = LeftLimit[a];
| |
| LeftLimitDone = true;
| |
| }
| |
| }
| |
| }
| |
| if(TopLimit){
| |
| if(TopLimit[a]||TopLimit[a]==0){
| |
| if( PositionHaut < parseInt(TopLimit[a])){
| |
| PositionHaut = parseInt(TopLimit[a]);
| |
| TopLimitDone = true;
| |
| }
| |
| }
| |
| }
| |
| elementsToMove[a].style.left = PositionGauche + 'px';
| |
| elementsToMove[a].style.top = PositionHaut + 'px';
| |
| }
| |
| if(LeftLimitDone){
| |
| for(var a=0;a<elementsToMove.length;a++){
| |
| if(LeftLimit[a]) elementsToMove[a].style.left = LeftLimit[a] + 'px';
| |
| }
| |
| LeftLimitDone = false;
| |
| }
| |
| if(TopLimitDone){
| |
| for(var a=0;a<elementsToMove.length;a++){
| |
| if(TopLimit[a]) elementsToMove[a].style.top = TopLimit[a] + 'px';
| |
| }
| |
| TopLimitDone = false;
| |
| }
| |
| }
| |
| monbody.onmouseup=function(event) {
| |
| for(var a=0;a<elementsToMove.length;a++){
| |
| elementsToMove[a].style.opacity = '';
| |
| }
| |
| monbody.onmousemove = null;
| |
| monbody.onmouseup = null;
| |
| }
| |
| }
| |
| elementArea.style.cursor = "move";
| |
| }
| |
| | |
| // fin de la sous-section "Déplacement du cadre"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Redimensionnement du cadre ===
| |
| | |
| Transforme un élément en ancre pour redimensionner un autre élément (en position fixed)
| |
| * elementArea = élément ancre (obligatoire)
| |
| * elementsToResize = éléments à redimensionner (obligatoire, dans une Array)
| |
| * MinWidth = largeur minimum, en pixel (facultatif)
| |
| * MinHeight = hauteur minimum, en pixel (facultatif)
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function MoveResizeAbsolute_AddResizeArea(elementArea, elementsToResize, MinWidth, MinHeight){
| |
| if((!elementArea)||(!elementsToResize)) return;
| |
| elementArea.onmousedown = function(event){
| |
| var monbody = document.body;
| |
| if(!event) { event = window.event; }
| |
| if(MoveResizeAbsolute_NavIsIE()){
| |
| positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
| |
| positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
| |
| }else{
| |
| positionSouris_X = parseInt( event.pageX );
| |
| positionSouris_Y = parseInt( event.pageY );
| |
| }
| |
| for(var a=0;a<elementsToResize.length;a++){
| |
| elementsToResize[a].initialWidth = parseInt( positionSouris_X - elementsToResize[a].offsetWidth );
| |
| elementsToResize[a].initialHeight = parseInt( positionSouris_Y - elementsToResize[a].offsetHeight );
| |
| elementsToResize[a].style.opacity = '.8';
| |
| }
| |
| monbody.onmousemove=function(event) {
| |
| if(!event) { event = window.event; } | |
| if(MoveResizeAbsolute_NavIsIE()){
| |
| positionSouris_X = parseInt( event.clientX + monbody.scrollLeft );
| |
| positionSouris_Y = parseInt( event.clientY + monbody.scrollTop );
| |
| }else{
| |
| positionSouris_X = parseInt( event.pageX );
| |
| positionSouris_Y = parseInt( event.pageY );
| |
| }
| |
| var MinWidthDone = false;
| |
| var MinHeightDone = false;
| |
| for(var a=0;a<elementsToResize.length;a++){
| |
| var NewWidth = parseInt( positionSouris_X - elementsToResize[a].initialWidth );
| |
| var NewHeight = parseInt( positionSouris_Y - elementsToResize[a].initialHeight );
| |
| if(MinWidth){
| |
| if(MinWidth[a] || MinWidth[a]==0){
| |
| if(NewWidth<parseInt(MinWidth[a])){
| |
| NewWidth = MinWidth[a];
| |
| MinWidthDone = true;
| |
| }
| |
| }
| |
| }
| |
| if(MinHeight){
| |
| if(MinHeight[a] || MinHeight[a]==0){
| |
| if(NewHeight<parseInt(MinHeight[a])){
| |
| NewHeight = MinHeight[a];
| |
| MinHeightDone = true;
| |
| }
| |
| }
| |
| }
| |
| elementsToResize[a].style.width = NewWidth + 'px';
| |
| elementsToResize[a].style.height = NewHeight + 'px';
| |
| }
| |
| if(MinWidthDone){
| |
| for(var a=0;a<elementsToResize.length;a++){
| |
| if(MinWidth[a]) elementsToResize[a].style.width = MinWidth[a] + 'px';
| |
| }
| |
| }
| |
| if(MinHeightDone){
| |
| for(var a=0;a<elementsToResize.length;a++){
| |
| if(MinHeight[a]) elementsToResize[a].style.height = MinHeight[a] + 'px';
| |
| }
| |
| }
| |
| | |
| }
| |
| monbody.onmouseup=function(event) {
| |
| for(var a=0;a<elementsToResize.length;a++){
| |
| elementsToResize[a].style.opacity = '';
| |
| }
| |
| monbody.onmousemove = null;
| |
| monbody.onmouseup = null;
| |
| }
| |
| }
| |
| elementArea.style.cursor = "se-resize";
| |
| }
| |
| | |
| // fin de la sous-section "Redimensionnement du cadre"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Affichage ou masquage ===
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function openStreetMap_Toggle () {
| |
| var c = document.getElementById ( 'mw-indicator-coords' ) ;
| |
| if ( !c ) return ;
| |
| var osm = document.getElementById ( 'OpenStreetMap' ) ;
| |
| | |
| if (osm) {
| |
| if ( osm.style.display == 'none' ) {
| |
| osm.style.display = 'block' ;
| |
| } else {
| |
| osm.style.display = 'none' ;
| |
| }
| |
| return;
| |
| }
| |
| | |
| var a = c.getElementsByTagName ( 'a' ) ;
| |
| if ( a.length != 1 ) return;
| |
|
| |
| var h = a[0].hack.split('params=')[1] ;
| |
| | |
| var LargeurEcran = MoveResizeAbsolute_GetScreenWidth();
| |
| var HauteurEcran = MoveResizeAbsolute_GetScreenHeight();
| |
| | |
| var OSMDiv = document.createElement('div');
| |
| OSMDiv.id = 'OpenStreetMap' ;
| |
| OSMDiv.style.position = "absolute";
| |
| OSMDiv.style.zIndex = 5000;
| |
| OSMDiv.style.top = (HauteurEcran*10/100) + "px";
| |
| OSMDiv.style.left = (LargeurEcran*15/100) + "px";
| |
| OSMDiv.style.width = "70%";
| |
| OSMDiv.style.height = (HauteurEcran*80/100) + "px";
| |
| OSMDiv.style.border = "1px solid #AAAAAA";
| |
| OSMDiv.style.backgroundColor = "#EEEEFF";
| |
| OSMDiv.style.overflow = "hidden";
| |
| | |
| var MoveArea = document.createElement('div');
| |
| MoveArea.style.position = "relative";
| |
| MoveArea.style.top = "0";
| |
| MoveArea.style.width = "100%";
| |
| MoveArea.style.height = "50px";
| |
| MoveArea.title = "Cliquer et glisser pour déplacer la carte";
| |
| | |
| var CloseLink = document.createElement('a');
| |
| CloseLink.setAttribute("style", "float:right;margin:10px;");
| |
| CloseLink.innerHTML = "Cacher la carte";
| |
| CloseLink.title = "Cliquer pour masquer la carte";
| |
| CloseLink.href = "javascript:openStreetMap_Toggle();";
| |
| MoveArea.appendChild(CloseLink);
| |
| | |
| var iFrame = document.createElement ( 'iframe' ) ;
| |
| var url = 'https://tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?lang=' + mw.config.get('wgUserLanguage') + '¶ms=' + h ;
| |
| iFrame.style.width = '100%' ;
| |
| iFrame.style.height = ((HauteurEcran*80/100)-100) + 'px' ;
| |
| iFrame.style.clear = 'both' ;
| |
| iFrame.src = url ;
| |
| | |
| var ResizeArea = document.createElement('div');
| |
| ResizeArea.style.position = "relative";
| |
| ResizeArea.style.top = "0";
| |
| ResizeArea.style.width = "100%";
| |
| ResizeArea.style.height = "50px";
| |
| ResizeArea.title = "Cliquer et glisser pour redimensionner la carte";
| |
| | |
| OSMDiv.appendChild(MoveArea);
| |
| OSMDiv.appendChild(iFrame);
| |
| OSMDiv.appendChild(ResizeArea);
| |
| | |
| document.body.appendChild ( OSMDiv ) ;
| |
| | |
| var ElementsToMove = new Array(OSMDiv);
| |
| var ElementsToResize = new Array(OSMDiv, iFrame);
| |
| var ElementsMinWidth = new Array(150, 150);
| |
| var ElementsMinHeights = new Array(200, 100);
| |
| | |
| MoveResizeAbsolute_AddMoveArea(MoveArea, ElementsToMove);
| |
| MoveResizeAbsolute_AddResizeArea(ResizeArea, ElementsToResize, ElementsMinWidth, ElementsMinHeights);
| |
| }
| |
| | |
| // fin de la sous-section "Affichage ou masquage"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Initialisation ===
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function openStreetMap_Init () {
| |
| var c = document.getElementById ( 'mw-indicator-coords' ) ;
| |
| if ( !c ) return ;
| |
| | |
| var a = c.getElementsByTagName ( 'a' ) ;
| |
| if ( a.length != 1 ) return;
| |
| | |
| a[0].title = 'carte';
| |
| a[0].hack = a[0].href;
| |
| a[0].href = 'javascript:openStreetMap_Toggle();';
| |
| }
| |
| $(openStreetMap_Init);
| |
| | |
| // fin de la sous-section "Initialisation" et de la section "OpenStreetMap"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| == IconesDeTitre ==
| |
| Fait en sorte que le modèle {{m|Icône de titre}} puisse être utilisé plusieurs fois.
| |
| | |
| Cherche les icônes de titre (class="icone_de_titre") et les déplace à droite du titre de la page.
| |
| | |
| Doit être exécuté après une éventuelle correction de titre.
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| function IconesDeTitre() {
| |
| var h1 = document.getElementById('firstHeading');
| |
| if(!h1) h1 = document.getElementsByTagName('h1')[0]; // Nostalgia, Standard
| |
| if(!h1) return;
| |
| var icones = document.getElementsByClassName( 'icone_de_titre' );
| |
| for( var j = 0; j < icones.length; j++ ){
| |
| icones[j].style.display = "block"; /* annule display:none par défaut */
| |
| if(( skin == "modern" )||( skin == "vector" )){
| |
| icones[j].style.marginTop = "0em";
| |
| }
| |
| h1.parentNode.insertBefore(icones[j], h1); /* déplacement de l'élément */
| |
| }
| |
| }
| |
| $(IconesDeTitre);
| |
| | |
| // fin de la section "IconesDeTitre"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| == Avertissement dans la console JS ==
| |
| Ajoute un avertissement dans la console JS sur les scripts copiés.
| |
| | |
| Proposition de l’[[utilisateur : Rififi]].
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| console.log('%cATTENDS !', 'font: 3em consolas; color: red;');
| |
| console.log('%cSi quelqu\'un t\'a demandé de coller quelque chose ici, NE LE FAIS PAS ! Il y a de fortes chances que ce soit une arnaque.\n' +
| |
| 'Cet outil, appelé console JavaScript, permet d\'exécuter du code JavaScript, un langage de programmation.\n' +
| |
| 'Cette console peut être utile pour les développeurs, mais peut aussi permettre de récupérer des informations personnelles.\n' +
| |
| 'Ne colle jamais du code que tu ne comprends pas s\'il ne vient pas d\'une personne de confiance.', 'font: 1.5em consolas; color: black; background-color: white;');
| |
| | |
| // fin de la section "Avertissement dans la console JS"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| == Non valable en espace principal ==
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| if ( mw.config.get( 'wgNamespaceNumber' ) >= 2 ) {
| |
| | |
| // fin de l’intro de la section "Non valable en espace principal"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| === Transformer des pages en page de discussion ===
| |
| Transformer les pages spécifiées par {{m|page de discussion}},
| |
| et les pages du BA, des RA, et autres, en pages de discussion.
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| $( function ( $ ) {
| |
| if (
| |
| /^Vikidia:(Demandes aux administrateurs|Bulletin des administrateurs|Demandes aux bureaucrates|Bavardages|Parrainage\/Demandes|Bulletin des patrouilleurs|Alerte)\/[0-9]?[0-9]?[0-9]?[0-9]?\s[01]?[0-9]?/.test( mw.config.get( 'wgPageName' ) ) ||
| |
| $( '#transformeEnPageDeDiscussion' ).length
| |
| ) {
| |
| $( 'body' ).removeClass( 'ns-subject' ).addClass( 'ns-talk' );
| |
| }
| |
| } );
| |
| | |
| // fin de la section "Transformer des pages en page de discussion"</syntaxhighlight><!-- | |
| /* -->
| |
| | |
| === Script pour le [[modèle : Contributions]] ===
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| var editcountClass = document.getElementsByClassName('usereditcount');
| |
| if (editcountClass.length > 0) {
| |
| var mwApI, editcount;
| |
| mwApI = new mw.Api();
| |
| mwApI.post({
| |
| action: "query",
| |
| format: "json",
| |
| list: "users",
| |
| usprop: "editcount",
| |
| ususers: editcountClass[0].innerText
| |
| }).then(function(data){
| |
| if(data.query.users[0].editcount) {
| |
| editcount = data.query.users[0].editcount;
| |
| editcountClass[0].innerText = editcount;
| |
| } else { | | } else { |
| editcountClass[0].innerHTML = '<span class="error">Compte inexistant !</span>'; | | alert('Error: Could not post your question.'); |
| } | | } |
| }); | | }); |
| } | | } |
| | | </script> |
| // fin de la sous-section "Script pour le modèle : Contributions"</syntaxhighlight><!--
| |
| /* -->
| |
| | |
| <!-- */
| |
| // --><syntaxhighlight lang="javascript">
| |
| | |
| }
| |
| | |
| // fin de la section "Non valable en espace principal"</syntaxhighlight>
| |