Wiki Harry Potter
Wiki Harry Potter
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 456 : Ligne 456 :
 
var utilisateur = mw.config.get('wgUserName');
 
var utilisateur = mw.config.get('wgUserName');
 
if (utilisateur === "Publicité" || utilisateur === "Hulothe") {
 
if (utilisateur === "Publicité" || utilisateur === "Hulothe") {
$("body.editor #mw-content-text").prepend('<div style="margin-bottom: 10px; font-size: 15px; padding: 20px 20px 10px 0; border: 1px solid black; background: grey">Bonnes contributions !<br /><br />À bientôt,<br /><br />Hulothe.<br /><br /><br /><span style="color:#c40">Ce n'est pas la peine d'enlever les Croix après les noms des personnes décédées ;)</span></div>');
+
$("body.editor #mw-content-text").prepend('<div style="margin-bottom: 10px; font-size: 15px; padding: 20px 20px 10px 0; border: 1px solid black; background: grey">Bonnes contributions !<br /><br />À bientôt,<br /><br />Hulothe.<br /><br /><br /><span style="color:#c40">Ce n\'est pas la peine d'enlever les Croix après les noms des personnes décédées ;)</span></div>');
 
}
 
}
   

Version du 31 juillet 2014 à 17:30

//=================================================================================================
//
//                                              ICÔNES
//
//=================================================================================================

// Adds icons to page header.
// By The 888th Avatar (from avatar.wikia.com) 

$(function() {
	if (skin == "oasis" || skin == "wikia") {
		$('.WikiaPageHeader').append($('#icons'));
		$('#icons').css({'position' : 'absolute', 'right' : '0', 'bottom' : '-1.3em', 'z-index' : 'initial'});
	}
});

//=================================================================================================
//
//                                             SUBLIST
//
//=================================================================================================

// Generates a list of subpages
// By Penguin-Pal

/* dependency for template:SubList; Idea:Love Robin, custom code by Penguin-Pal */
$(".prefixindex-custom").each(function() {
	// custom css
	mw.util.addCSS(
		'/* upper-roman */\n' +
		'nav.toc.prefixindex-custom-toc-upper-roman li:before {\n' +
			'\tcontent: counters(item,".", upper-roman) " ";\n' +
		'}\n' +
		'/* lower-roman */\n' +
		'nav.toc.prefixindex-custom-toc-lower-roman li:before {\n' +
			'\tcontent: counters(item,".", lower-roman) " ";\n' +
		'}\n' +
		'/* lower-alpha */\n' +
		'nav.toc.prefixindex-custom-toc-lower-alpha li:before {\n' +
			'\tcontent: counters(item,".", lower-alpha) " ";\n' +
		'}\n' +
		'/* upper-alpha */\n' +
		'nav.toc.prefixindex-custom-toc-upper-alpha li:before {\n' +
			'\tcontent: counters(item,".", upper-alpha) " ";\n' +
		'}\n' +
		'/* square */\n' +
		'nav.toc.prefixindex-custom-toc-square li:before {\n' +
			'\tcontent: "\\25A0\\0020\\0020";\n' +
			'\tfont-size: 10px;\n' +
			'\tvertical-align: top;\n' +
		'}\n' +
		'/* none */\n' +
		'nav.toc.prefixindex-custom-toc-none li:before {\n' +
			'\tcontent: " ";\n' +
		'}'
	);
	// function t based on http://stackoverflow.com/questions/4549894/how-can-i-repeat-strings-in-javascript#answer-4549907
	function t(s, t) {
		return new Array(t + 1).join(s);
	}
	// list() from wiki2html, http://remysharp.com/2008/04/01/wiki-to-html-using-javascript/
    function list(str) {
        return str.replace(/(?:(?:(?:^|\n)[\*#].*)+)/g, function (m) {  // (?=[\*#])
            var type = m.match(/(^|\n)#/) ? 'ol' : 'ul';
            // strip first layer of list
            m = m.replace(/(^|\n)[\*#][ ]{0,1}/g, "$1");
            m = list(m);
            return '<' + type + '><li>' + m.replace(/^\n/, '').split(/\n/).join('</li><li>') + '</li></' + type + '>';
        });
    }
	if ($(this).next().attr("id") == "mw-prefixindex-list-table" && $(this).next()[0].nodeName.toLowerCase() == "table") {
		var a = $(this).next().find("a"), // links
			b = [], // raw output
			c = ""; // final output
		for (var i = 0; i < a.length; i++) {
			var href = $(a[i]).attr("href").substr(6); // current link target
			b.push(
				t("#", href.split("/").length - 1) + // give an index for the sub list - 1 is the first sub level
				" " +
				a[i].outerHTML
			);
			if (i + 1 == a.length) {
				var d = $(list(b.join("\n")));
				$(d).find("li").each(function(i) {
					$(this).addClass(
						"toclevel-" + (
							($(this).parents().length - 1) / 2 + 1
						)
					);
				});
				// add custom listing systems
				if ($(this).attr("data-list").length > 0) {
					switch ($(this).attr("data-list").toLowerCase()) {
						case "numbered":
							var piSort = "decimal";
							break;
						case "lower-alpha":
							var piSort = "lower-alpha";
							break;
						case "upper-alpha":
							var piSort = "upper-alpha";
							break;
						case "alpha":
							var piSort = "lower-alpha";
							break;
						case "upper-roman":
							var piSort = "upper-roman";
							break;
						case "lower-roman":
							var piSort = "lower-roman";
							break;
						case "roman":
							var piSort = "lower-roman";
							break;
						case "square":
							var piSort = "square";
							break;
						case "none":
							var piSort = "none";
							break;
						default:
							var piSort = "decimal";
					}
				}
				$(this).next().replaceWith('<nav class="prefixindex-custom-toc' + (piSort != "decimal" ? ' prefixindex-custom-toc-' + piSort : '') + ' toc show">\n<ol>\n' + $(d).html() + '\n</ul>\n</nav>');
				// now, only give the links their "Final" sub page name
				$(this).next().find("a").each(function() {
					if ($(this).html().indexOf("/") > -1) {
						$(this).html(
							$(this).html().split("/")[
								$(this).html().split("/").length - 1
							]
						);
					}
				});
			}
		}
	}
});


//=================================================================================================
//
//                                             USERTAGS
//
//=================================================================================================

// Affiche plusieurs titres sur les pages utilisateur.

window.UserTagsJS = {
        modules: {},
        tags: {
		code: { u: 'Codeur', order:2 },
		c: { u: 'Correctrice', order:4 },
		d: { u: 'Duelliste', order:3 },
                sysop: { u: 'Professeur', link:'Project:Administrateurs'},
                rollback: { m: 'Préfet', f: 'Préfète', u: 'Préfet'},
                prefetenchef: { m: 'Préfet-en-chef', f: 'Préfète-en-chef', u: 'Préfet-en-chef', order:1 }
	},
};
UserTagsJS.modules.autoconfirmed = true;
UserTagsJS.modules.mwGroups = ['bureaucrat', 'sysop', 'bannedfromchat', 'rollback', 'chatmoderator', 'bot', 'prefetenchef', 'util', 'voldev'];
	
UserTagsJS.modules.custom = {
	'Hulothe': ['code'],
        'Jedusor.R': ['c']
};

//=================================================================================================
//
//                                             USERNAME
//
//=================================================================================================

// Remplace <insert name here> avec le nom de l'utilisateur qui parcours la page.
// Requiers de copier {{USERNAME}}.

function substUsername() {
        $('.insertusername').html(wgUserName);
}

 function substUsernameTOC() {
        var toc = document.getElementById('toc');
        var userpage = document.getElementById('pt-userpage');

        if( !userpage || !toc )
                return;

        var username = userpage.firstChild.firstChild.nodeValue;
        var elements = getElementsByClass('toctext', toc, 'span');

        for( var i = 0; i < elements.length; i++ )
                elements[i].firstChild.nodeValue = elements  [i].firstChild.nodeValue.replace('<insert name here>', username);
}
$(function() { $('.insertusername').html(wgUserName); });


//=================================================================================================
//
//                                   BEGIN Dynamic Navigation Bars
//
//================================================================================================= 
 /** Test if an element has a certain class **************************************
  *
  * Description: Uses regular expressions and caching for better performance.
  * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
  */
 
 var hasClass = (function () {
 	var reCache = {};
 	return function (element, className) {
 		return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 };
 })();

// set up the words in your language
var NavigationBarHide = '▲ Enrouler';
var NavigationBarShow = '▼ Dérouler';
 
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
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;
    }
 
    // 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 = NavigationBarShow;
            }
        }
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        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);
        }
    }
 
}
 
addOnloadHook ( createNavigationBarToggleButton );
 
// END Dynamic Navigation Bars
// ============================================================


//=================================================================================================
//
//                                        BOÎTES DÉROULANTES
//
//=================================================================================================

// Pour [[Modèle:Méta palette de navigation]]

var autoCollapse = 2;
var collapseCaption = '[Reducto]';
var expandCaption = '[Amplificatum]';
 
function collapseTable( tableIndex ) {
  var Button = document.getElementById( "collapseButton" + tableIndex );
  var Table = document.getElementById( "collapsibleTable" + tableIndex );
  if ( !Table || !Button ) return false;
 
  var Rows = Table.getElementsByTagName( "tr" ); 
 
  if ( Button.firstChild.data == collapseCaption ) {
    for ( var i = 1; i < Rows.length; i++ ) {
      Rows[i].style.display = "none";
    }
    Button.firstChild.data = expandCaption;
  } else {
    for ( var i = 1; i < Rows.length; i++ ) {
      Rows[i].style.display = Rows[0].style.display;
    }
    Button.firstChild.data = collapseCaption;
  }
}
 
function createCollapseButtons() {
  var tableIndex = 0;
  var NavigationBoxes = new Object();
  var Tables = document.getElementsByTagName( "table" );
 
  for ( var i = 0; i < Tables.length; i++ ) {
    if ( hasClass( Tables[i], "collapsible" ) ) {
      NavigationBoxes[ tableIndex ] = Tables[i];
      Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
      var Button     = document.createElement( "span" );
      var ButtonLink = document.createElement( "a" );
      var ButtonText = document.createTextNode( collapseCaption );
 
      Button.style.styleFloat = "right";
      Button.style.cssFloat = "right";
      Button.style.fontWeight = "normal";
      Button.style.textAlign = "right";
      Button.style.width = "7em";
 
      ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
      ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
      ButtonLink.appendChild( ButtonText );
 
      Button.appendChild( ButtonLink );
 
      var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
      /* only add button and increment count if there is a header row to work with */
      if (Header) {
        Header.insertBefore( Button, Header.childNodes[0] );
        tableIndex++;
      }
    }
  }
 
  for (var i = 0; i < tableIndex; i++) {
    if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) collapseTable( i );
  }
}
addOnloadHook(createCollapseButtons);

/* Substitute Template:Information into upload page */
$(function() {
	if (wgPageName != 'Spécial:Téléverser') { return; }
	$('#wpUploadDescription').text("==Description==\r\n{{Fichier\r\n|Description=\r\n|Date=\r\n|Auteur=\r\n|Source=\r\n|Licence=\r\n|Et plus=\r\n}}");
});


//=================================================================================================
//
//                                             FACEBOOK
//
//=================================================================================================

//Made by Ofkorse

$("body").append('<div id="fb-root"></div><script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1";fjs.parentNode.insertBefore(js, fjs);}(document, \'script\', \'facebook-jssdk\'));</script>');
$(document).ready(function(){
        $("<div id='FacebookWnd'></div>").css({
                background:'url(http://img3.wikia.nocookie.net/__cb20140423133352/harry-potter/oc/images/5/55/Facebook.png)',
                width:242,
                height:401,
                position:'fixed',
                top:200,
                right:-210,
                zIndex:300}).appendTo("body");
        //Zawartość
        $('<div class="fb-like-box" data-href="https://www.facebook.com/WikiHarryPotterFrance" data-width="185" data-height="361" data-show-faces="true" data-stream="false" data-header="false"></div>').css({marginTop:"10px", marginLeft:"47px"}).appendTo("#FacebookWnd");
        $("#FacebookWnd").click(function(){
                toggleFacebookWnd();
        });
});
 
function toggleFacebookWnd() {
        if (parseInt($("#FacebookWnd").css("right"))!==0) $("#FacebookWnd").animate({right:"0px"}, 700);
        else $("#FacebookWnd").animate({right:"-210px"}, 700);
}
//load.js
$(function() {
    var javascript = $('.loadjs').text();
    $('.loadjs').html('<script>'+javascript+'</script>');
});


//=================================================================================================
//
//                                            POLL
//
//=================================================================================================

if ($.inArray("sysop",mw.config.get("wgUserGroups")) == -1 && $.inArray("staff",mw.config.get("wgUserGroups")) == -1 && $.inArray("vstf",mw.config.get("wgUserGroups")) == -1 && $.inArray("helper",mw.config.get("wgUserGroups")) == -1 && $.inArray("util",mw.config.get("wgUserGroups")) == -1) {
	$("body.mw-special-CreatePoll #mw-content-text").html('Vous n’êtes pas autorisé créer un sondage, pour la raison suivante :<br /><br />L’action que vous essayez de réaliser n’est accessible qu’aux utilisateurs du groupe&#160;: <a href="http://communaute.wikia.com/wiki/Aide:Niveaux_d\'accès_utilisateur#Staff" class="extiw" title="Aide:Niveaux d\'accès utilisateur">Staff</a>, <a href="http://communaute.wikia.com/wiki/Aide:Niveaux_d\'accès_utilisateur#Utilities" class="extiw" title="Aide:Niveaux d\'accès utilisateur">Wikia Utilities</a>, <a href="http://communaute.wikia.com/wiki/Aide:Niveaux_d\'accès_utilisateur#VSTF" class="extiw" title="Aide:Niveaux d\'accès utilisateur">VSTF</a>, <a href="http://communaute.wikia.com/wiki/Aide:Niveaux_d\'accès_utilisateur#Assistants" class="extiw" title="Aide:Niveaux d\'accès utilisateur">Assistants</a>, <a href="http://communaute.wikia.com/wiki/Aide:Niveaux_d\'accès_utilisateur#Administrateurs" class="extiw" title="Aide:Niveaux d\'accès utilisateur">Administrateurs</a>.');
	$(document).ready(function() {
		$("body.mw-special-Userrights").attr("oncontextmenu","return false;");
	});
}

var utilisateur = mw.config.get('wgUserName');
if (utilisateur === "Publicité" || utilisateur === "Hulothe") {
	$("body.editor #mw-content-text").prepend('<div style="margin-bottom: 10px; font-size: 15px; padding: 20px 20px 10px 0; border: 1px solid black; background: grey">Bonnes contributions !<br /><br />À bientôt,<br /><br />Hulothe.<br /><br /><br /><span style="color:#c40">Ce n\'est pas la peine d'enlever les Croix après les noms des personnes décédées ;)</span></div>');
}


//=================================================================================================
//
//                                         IMPORT D'ARTICLES
//
//=================================================================================================

importArticles({
	type: 'script',
	articles: [
		'u:dev:ReferencePopups/code.js',
		'u:dev:DynamicImages/code.js',
		'u:dev:ExtendedNavigation/code.js',
		'u:dev:UserTags/code.js',
		'u:zh.pad:MediaWiki:CountDown.js',
//		'MediaWiki:Common.js/Snow.js',
//		'u:c:MediaWiki:Snow.js',
		'u:dev:Standard_Edit_Summary/code.js',
                'w:c:dev:TopEditors/code.js',
    ]
}, {
	type: "style",
		articles: ['u:zh.pad:MediaWiki:CountDown.css']
});