MediaWiki:Monobook.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 170: | Line 170: | ||
// END Dynamic Navigation Bars | // END Dynamic Navigation Bars | ||
// ============================================================ | // ============================================================ | ||
/** | |||
* | |||
* Generate an array using Mediawiki syntax | |||
* | |||
* @author: fr:user:dake | |||
* Editor: juha villman | |||
* @version: 0.1 | |||
*/ | |||
function generateTableau(nbCol, nbRow, border, styleHeader) | |||
{ | |||
var code = "\n"; | |||
if (styleHeader==1) { | |||
code += '{|'+'{'+'{prettytable}}\n'; | |||
} else { | |||
code += '{| border="' + border + '"\n'; | |||
code += '|+ Table topic\n'; | |||
} | |||
for (var i=0; i<nbCol; i++) code += '! Column title ' + i + '\n'; | |||
for (var j=0; j<nbRow; j++) { | |||
if ((j+1)%2==0) { | |||
code += '|-----\n'; | |||
} else { | |||
code += '|-----\n'; | |||
} | |||
for (var i=0; i<nbCol; i++) code += '| element\n'; | |||
} | |||
code += '|}'; | |||
insertTags('','', code); | |||
} | |||
/** | |||
* | |||
* Open a popup with parameters to generate an array. | |||
* The number of rows/columns can be modified. | |||
* | |||
* @author: fr:user:dake | |||
* editor: juha villman | |||
* @version: 0.1 | |||
*/ | |||
function popupTableau() | |||
{ | |||
var popup = window.open('','name','height=270,width=250'); | |||
javaCode = '<script type="text\/javascript">function insertCode(){'; | |||
javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '; | |||
javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '; | |||
javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); '; | |||
javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; '; | |||
javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader); '; | |||
javaCode += '}<\/script>'; | |||
popup.document.write('<html><head><title>Table generator</title>'); | |||
popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>'); | |||
popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>'); | |||
popup.document.write(javaCode); | |||
popup.document.write('</head><body background="http://www.pyrkilo.fi/testiwiki/skins/monobook/headbg.jpg">'); | |||
popup.document.write('<p><B><center>Table parameters</center> </B> </p>'); | |||
popup.document.write('<form name="paramForm">'); | |||
popup.document.write('<table><tr><td>Number of rows : <td><input type="text" name="inputRow" value="3" size="4"><p>'); | |||
popup.document.write('</tr><tr><td>Number of columns : <td><input type="text" name="inputCol" value="3" size="4"><p>'); | |||
popup.document.write('</tr><tr><td>Size of border : <td><input type="text" name="inputBorder" value="1" size="4"><p>'); | |||
popup.document.write('</tr><tr><td>Use PrettyTable-style : <td><input type="checkbox" name="inputHeader" checked="1" size="4"><p>'); | |||
popup.document.write('</tr></table></form">'); | |||
popup.document.write('<p><a href="javascript:insertCode()"> Insert table code!</a></p>'); | |||
popup.document.write('<p><a href="javascript:self.close()"> Close</a></p>'); | |||
popup.document.write('</body></html>'); | |||
popup.document.close(); | |||
} | |||
//============================================================ | |||
// Additional button for edit-toolbar | |||
//============================================================ | |||
//Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils | |||
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText) | |||
{ | |||
mwCustomEditButtons[mwCustomEditButtons.length] = | |||
{"imageFile": imageFile, | |||
"speedTip": speedTip, | |||
"tagOpen": tagOpen, | |||
"tagClose": tagClose, | |||
"sampleText": sampleText}; | |||
} | |||
//addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png','Rayer',"<s>","</s>",''); | |||
//addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération',"\\n# élément 1\\n# élément 2\\n# élément 3","",''); | |||
//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags | |||
function marque_tab() | |||
{ | |||
var toolbar = document.getElementById('toolbar'); | |||
if (!toolbar) return false; | |||
var textbox = document.getElementById('wpTextbox1'); | |||
if (!textbox) return false; | |||
if (!document.selection && textbox.selectionStart == null) | |||
return false; | |||
var image = document.createElement("img"); | |||
image.width = 23; | |||
image.height = 22; | |||
image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png'; | |||
image.border = 0; | |||
image.alt = 'Table'; | |||
image.title = 'Table'; | |||
image.style.cursor = "pointer"; | |||
image.onclick = function() { | |||
popupTableau(); | |||
return false; | |||
} | |||
toolbar.appendChild(image); | |||
} | |||
addOnloadHook(marque_tab); |
Revision as of 10:05, 31 October 2006
/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.');
ta['ca-nstab-wp'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
// ============================================================
// BEGIN Dynamic Navigation Bars (experimantal)
// set up the words in your language
var NavigationBarHide = '[ Hide ]';
var NavigationBarShow = '[ Show ]';
// 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 = 1;
// 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';
}
}
NavToggle.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';
}
}
NavToggle.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(NavigationBarShow); //This has been changed from NavigationBarHide
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for(
var j=0;
j < NavFrame.childNodes.length;
j++
) {
if (NavFrame.childNodes[j].className == "NavHead") {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
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);
}
}
}
addLoadEvent(createNavigationBarToggleButton);
// END Dynamic Navigation Bars
// ============================================================
/**
*
* Generate an array using Mediawiki syntax
*
* @author: fr:user:dake
* Editor: juha villman
* @version: 0.1
*/
function generateTableau(nbCol, nbRow, border, styleHeader)
{
var code = "\n";
if (styleHeader==1) {
code += '{|'+'{'+'{prettytable}}\n';
} else {
code += '{| border="' + border + '"\n';
code += '|+ Table topic\n';
}
for (var i=0; i<nbCol; i++) code += '! Column title ' + i + '\n';
for (var j=0; j<nbRow; j++) {
if ((j+1)%2==0) {
code += '|-----\n';
} else {
code += '|-----\n';
}
for (var i=0; i<nbCol; i++) code += '| element\n';
}
code += '|}';
insertTags('','', code);
}
/**
*
* Open a popup with parameters to generate an array.
* The number of rows/columns can be modified.
*
* @author: fr:user:dake
* editor: juha villman
* @version: 0.1
*/
function popupTableau()
{
var popup = window.open('','name','height=270,width=250');
javaCode = '<script type="text\/javascript">function insertCode(){';
javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ';
javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ';
javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); ';
javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; ';
javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader); ';
javaCode += '}<\/script>';
popup.document.write('<html><head><title>Table generator</title>');
popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>');
popup.document.write(javaCode);
popup.document.write('</head><body background="http://www.pyrkilo.fi/testiwiki/skins/monobook/headbg.jpg">');
popup.document.write('<p><B><center>Table parameters</center> </B> </p>');
popup.document.write('<form name="paramForm">');
popup.document.write('<table><tr><td>Number of rows : <td><input type="text" name="inputRow" value="3" size="4"><p>');
popup.document.write('</tr><tr><td>Number of columns : <td><input type="text" name="inputCol" value="3" size="4"><p>');
popup.document.write('</tr><tr><td>Size of border : <td><input type="text" name="inputBorder" value="1" size="4"><p>');
popup.document.write('</tr><tr><td>Use PrettyTable-style : <td><input type="checkbox" name="inputHeader" checked="1" size="4"><p>');
popup.document.write('</tr></table></form">');
popup.document.write('<p><a href="javascript:insertCode()"> Insert table code!</a></p>');
popup.document.write('<p><a href="javascript:self.close()"> Close</a></p>');
popup.document.write('</body></html>');
popup.document.close();
}
//============================================================
// Additional button for edit-toolbar
//============================================================
//Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText)
{
mwCustomEditButtons[mwCustomEditButtons.length] =
{"imageFile": imageFile,
"speedTip": speedTip,
"tagOpen": tagOpen,
"tagClose": tagClose,
"sampleText": sampleText};
}
//addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png','Rayer',"<s>","</s>",'');
//addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération',"\\n# élément 1\\n# élément 2\\n# élément 3","",'');
//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
function marque_tab()
{
var toolbar = document.getElementById('toolbar');
if (!toolbar) return false;
var textbox = document.getElementById('wpTextbox1');
if (!textbox) return false;
if (!document.selection && textbox.selectionStart == null)
return false;
var image = document.createElement("img");
image.width = 23;
image.height = 22;
image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
image.border = 0;
image.alt = 'Table';
image.title = 'Table';
image.style.cursor = "pointer";
image.onclick = function() {
popupTableau();
return false;
}
toolbar.appendChild(image);
}
addOnloadHook(marque_tab);