MediaWiki:Onlyifediting.js

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку

Увага: Після збереження слід очистити кеш оглядача, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Internet Explorer: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
  • Opera: очистіть кеш за допомогою Інструменти → Налаштування (Opera → Побажання на Apple Mac) та перейдіть на Приватність & безпека → очистити дані браузера → кеш
// <pre>

document.write('<script type="text/javascript" src="' 
              + 'http://ukrmemoria.com/w/index.php?title=MediaWiki:Wikificator.js' 
              + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

// Script from [[:en:User:MarkS/extraeditbuttons.js]]
document.write('<script type="text/javascript" src="' 
             + 'http://ukrmemoria.com/w/index.php?title=MediaWiki:extraeditbuttons.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

//============================================================
// Table generator
//============================================================

/**
 *
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake (language conversion and  new options added by en:user:Voice of All)
 * @version: 0.1
 */
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine, exfield, align, padding)
{
        var code = "\n";

        if (padding==false) padding=0;
        else if (padding==true) padding=1;

        code += '{| align="' + align + '" class="standard"\n';
        code += '|+\n';

        for (var i=1;i<nbCol+1;i++) code += '! |Стовпчик ' + i + '\n';

        var items = 0;
        for (var j=0;j<nbRow;j++) {
                code += '|-----\n'
               
                for (var i=0;i<nbCol;i++) code += '| комірка\n';
        }
        
        code += '|+\n';
        code += '|}\n';
        insertTags('','', code); 
}

/**
 *
 * English: Open a popup with parameters to generate an array. 
 * The number of rows/columns can be modified. Some additional
 * parameters are related to templates available on :fr
 *
 * @author: fr:user:dake
 * @version: 0.1
 */
function popupTable()
{
  var popup = window.open('','name','height=180,width=300,scrollbars=yes');
  
  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 = 0; '
  javaCode += 'var styleHeader = false; '
  javaCode += 'var styleLine = false; '
  javaCode += 'var exfield = false; '
  javaCode += 'var align = document.paramForm.inputAlign.value; '
  javaCode += 'var padding = false; '
  javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine,exfield,align,padding); '
  javaCode += "alert('Таблиця створена!'); "
  javaCode += 'window.close(); '
  javaCode += '}<\/script>';
  
  popup.document.write('<html><head><title>Створення таблиці</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>');
  popup.document.write('<p>Введіть параметри таблиці: </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('Вирівнювання&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: <input type="text" name="inputAlign" value="center" ><p>');
  popup.document.write('Кількість рядків&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: <input type="text" name="inputRow" value="3" ><p>');
  popup.document.write('Кількість стовпчиків: <input type="text" name="inputCol" value="3" ><p>');
  popup.document.write('</form">');
  popup.document.write('<p><a href="javascript:insertCode()">Вставити таблицю</a>     |');
  popup.document.write('    <a href="javascript:self.close()">Відмінити (зачинити вікно)</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}

//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 = 'Таблиця';
 image.title = 'Створити таблицю';
 image.style.cursor = "pointer";
 image.onclick = function() {
   popupTable();
   return false;
 }
 toolbar.appendChild(image);

 var image2 = document.createElement("img");
 image2.width = 23;
 image2.height = 22;
 image2.src = 'http://upload.wikimedia.org/wikipedia/commons/9/9c/Wikipedia-button-logo.PNG';
 image2.border = 0;
 image2.alt = 'Вікіфікатор';
 image2.title = 'Вікіфікатор';
 image2.style.cursor = "pointer";
 image2.onclick = function() {
   Wikify();
   return false;
 }
 toolbar.appendChild(image2);
}

addOnloadHook(marque_tab);

// </pre>
// [[ru:MediaWiki:Onlyifediting.js]]

/* 
==== Вставка стандартних описів змін ====
Скрипти створені в Польській Вікіпедії, взяті з Російської.
* Autor (Author, автор): [[:pl:User:Adziura|Adam Dziura]]
* Poprawki (Fixes, поправки): [[:pl:User:Nux|Maciej Jaros]]

<pre>
*/

function przyciskiOpis()
{
	// stop before starting
	if (window.przyciskiOpisDone)
		return;

	//
	// sprawdzenie, czy to jest pole edycji z opisem zmian (nie jest takie jako nagłówek)
	var el = document.getElementById('wpSummaryLabel');
	if (el)
	{
		if (el.innerHTML.indexOf('ий опис')==-1)
			return	// stop
		;
		
	}
	else
	{
		return;	// stop
	}
	//
        // створення контейнера для клавіш стандартних описів змін
	var el = document.getElementById('wpSummary').nextSibling;
	var opisBtns = document.createElement('span');
	opisBtns.id = 'userSummaryButtonsA'
	el.parentNode.insertBefore(document.createElement('br'), el)
	el.parentNode.insertBefore(opisBtns, el)
	
	//
	// додавання клавіш
	//var kl = 'userButtonsStyle';
	var kl = '';	// клас — непотрібний (усі <a> в #userSummaryButtonsA встановлені через CSS)
	if (opisBtns)
	{
		// drobne różne
                przyciskiDodaj(opisBtns, ' вікіф. ', 'dodajOpis("вікіфікація")', kl,
			'Виконана вікіфікація');
		przyciskiDodaj(opisBtns, ' оформл. ', 'dodajOpis("оформлення")', kl,
			'Покращено оформлення');
		przyciskiDodaj(opisBtns, ' стиль ', 'dodajOpis("стильові правлення")', kl,
			'Поправлений стиль викладу');
		przyciskiDodaj(opisBtns, ' орфогр. ', 'dodajOpis("орфографія")', kl,
			'Поправлена орфографія');
		przyciskiDodaj(opisBtns, ' пункт. ', 'dodajOpis("пунктуація")', kl,
			'Змінена пунктуація');
		//przyciskiDodaj(opisBtns, 'інтервікі', 'dodajOpis("інтервікі")', kl,
		//	'Виправлені/додані міжмовні посилання (інтервікі)');
		przyciskiDodaj(opisBtns, ' кат. ', 'dodajOpis("категоризація")', kl,
			'Виправлена/додана категоризація');
		przyciskiDodaj(opisBtns, ' шаб. ', 'dodajOpis("шаблон")', kl,
			'Виправлено/додано шаблон');
		przyciskiDodaj(opisBtns, ' на вилуч. ', 'dodajOpis("на вилучення")', kl,
			'Сторінка запропонована на вилучення');
		przyciskiDodaj(opisBtns, ' доп. ', 'dodajOpis("доповнення")', kl,
			'Додані нові відомості');
		przyciskiDodaj(opisBtns, ' зображення ', 'dodajOpis("зображення")', kl,
			'Розміщене зображення');
		przyciskiDodaj(opisBtns, ' онов. ', 'dodajOpis("оновлення даних")', kl,
			'Оновлені застарілі дані');
		przyciskiDodaj(opisBtns, ' лінки ', 'dodajOpis("зовнішні посилання")', kl,
			'Додано/виправлено зовнішні посилання');
	}
}

/*
Параметри:
* elUserBtns - контейнер, до якого додати клавішу
* pTekst - текст всередині клавіші
* pAkcja - дія (в текстовій формі), яку виконати при натисканні; може бути ряд команд
* pKlasa - клас, якщо потрібно
* pOpis - опис, що видно на підказці клавіші
*/
function przyciskiDodaj(elUserBtns, pTekst, pAkcja, pKlasa, pOpis) {
	var nowyBtn = document.createElement('a');

	// атрибути
	nowyBtn.appendChild(document.createTextNode(pTekst));
	nowyBtn.title = pOpis;
	if (pKlasa != '')
		nowyBtn.className = pKlasa
	;
	nowyBtn.onclick = new Function(pAkcja);

	// додання клавіші
	elUserBtns.appendChild(nowyBtn);
}

function dodajOpis(opis) {
	var wpS = document.editform.wpSummary;
	if (wpS.value != '' && wpS.value.charAt(wpS.value.length-2) != '/')
	{
		wpS.value += ', ' + opis
	}
	else
	{
		wpS.value += opis
	}
}

addOnloadHook(przyciskiOpis);