Difference between revisions of "MediaWiki:Common.js"

From Korean Wiki Project
Jump to: navigation, search
Line 107: Line 107:
 
}
 
}
  
var stack = new Stack();
+
alert(mwEditButtons.length);
stack.push(mwEditButtons.length);
+
stack.push(mwCustomEditButtons.length);
+
alert(stack.toString());
+
  
  

Revision as of 22:43, 16 April 2009

/* Any JavaScript here will be loaded for all <s>users</s> on every page load. */
 /** Extra toolbar options ******************************************************
  *
  *  Description: UNDOCUMENTED
  *  Maintainers: [[User:MarkS]]?, [[User:Voice of All]], [[User:R. Koot]]
  */
 
 //This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.
 // This is based on the original code on Wikipedia:Tools/Editing tools
 // To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]]
 
 if (mwCustomEditButtons) {

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_template.png",
     "speedTip": "Insert Grammar Page Template",
     "tagOpen": "'''Grammar pattern''' : This pattern is equivalent to '''equivalent statement'''\n\n==Conjugation Rule==\n*Pattern 1 : If there is no [[받침]]\n*Pattern 2 : If there is a [[받침]]\n\n==Conjugation Examples==\n*Original → After\n\n==Sentence Examples==\n*Example\n\n==Usage Exceptions==\n*Example\n\n==Pronunciation==\n*Special pronunciation rule?\n\n==See Also==\n*Related topic or grammar\n\n[[Category:CATEGORY NAME|WHERE TO SORT]]\n",
     "tagClose": "",
     "sampleText": ""};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_array.png",
     "speedTip": "Insert a table",
     "tagOpen": '{| class="wikitable"\n|-\n',
     "tagClose": "\n|}",
     "sampleText": "|+table title\n! header 1 !! header 2 !! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"};


   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_image.png",
     "speedTip": "Insert Image",
     "tagOpen": "[[Image:FILENAME.jpg",
     "tagClose": "]]",
     "sampleText": "|thumb|right|200px|Caption"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_mp3.png",
     "speedTip": "Insert Mp3",
     "tagOpen": "<flashmp3>filename.mp3|leftbg=003478|rightbg=c60c30|lefticon=ffffff|righticon=ffffff</flashmp3>",
     "tagClose": "",
     "sampleText": ""};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_redirect.png",
     "speedTip": "Redirect",
     "tagOpen": "#REDIRECT [[",
     "tagClose": "]]",
     "sampleText": "Insert text"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_category.png",
     "speedTip": "Insert Category",
     "tagOpen": "[[Category:",
     "tagClose": "|WHERE TO SORT]]",
     "sampleText": "CATEGORY NAME"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_comment.png",
     "speedTip": "Insert Hidden Comment",
     "tagOpen": "<!--",
     "tagClose": "-->",
     "sampleText": "Comment"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_align_left.png",
     "speedTip": "Align Left",
     "tagOpen": '<div style="text-align: left; direction: ltr; margin-left: 1em;">',
     "tagClose": "</div>",
     "sampleText": "Left-aligned text"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_center.png",
     "speedTip": "Align Center",
     "tagOpen": '<div style="text-align: center;">',
     "tagClose": "</div>",
     "sampleText": "Centred text"};
  
   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_align_right.png",
     "speedTip": "Align Right",
     "tagOpen": '<div style="text-align: right; direction: ltr; margin-left: 1em;">',
     "tagClose": "</div>",
     "sampleText": "Right-aligned text"};

   mwCustomEditButtons[mwCustomEditButtons.length] = {
     "imageFile": "http://www.koreanwikiproject.com/wiki/skins/common/images/Button_arrow.png",
     "speedTip": "Insert Arrow",
     "tagOpen": "→",
     "tagClose": "",
     "sampleText": ""};

 }

//create a custom toString function,
//event though Array object has its own
//we want to customize it a little bit
Stack.prototype.toString = function(){
	var temp = '[ ';
	for(var i = 0, length = this.list.length; i <= length; i++){
	  temp += this.list[i];
	  if(length - i != 1){
	  	temp += ', ';
	  }
	}
	temp += ' ]';
	return temp;
}

alert(mwEditButtons.length);


        //Remove the buttons the user doesn't want
        rmEditButtons=[];

	//Sort the user's requests so we remove the button with the highest index first
	//- This ensures we remove the buttons the user expects whatever order he requested the buttons in
	rmEditButtons.sort(sortit);

	//Remove individual buttons the user doesn't want 

	for(i=0;i<rmEditButtons.length;i++){
		var n=rmEditButtons[i];
		//Standard buttons
		if(n>=0 && n<mwEditButtons.length){
			if(n<mwEditButtons.length){
				var x = -1;
				while((++x)<mwEditButtons.length)
					if(x>=n)
						mwEditButtons[x] = mwEditButtons[x+1];
			}
		mwEditButtons.pop();
		}
		//Extra buttons in English Wikipedia
		n=n-mwEditButtons.length;
		if(n>0 && n<mwCustomEditButtons.length){
		if(n<mwCustomEditButtons.length){
				var x = -1;
				while((++x)<mwCustomEditButtons.length)
					if(x>=n)
						mwCustomEditButtons[x] = mwCustomEditButtons[x+1];
			}
		mwCustomEditButtons.pop();
		}
	}

function sortit(a,b){
	return(b-a)
}