MediaWiki:Gadget-add-word.js: Różnice pomiędzy wersjami

Z Wikisłownika – wolnego słownika wielojęzycznego
Usunięta treść Dodana treść
dr.
wykrywanie obecnosci spacji w tytule i zamiana 'rzeczownik' na 'fraza rzeczownikowa' itp. (Specjalna:Diff/4619117), faktoryzacja
Linia 1: Linia 1:
var $wpTextbox;
var $wpTextbox;

function makeOptions( template, firstParam, secondParam, splitString ) {
var s, arr;
splitString = splitString || '[[krótki|krótka]] [[definicja]]';
s = mw.format( template.join( '\n' ), firstParam, secondParam );
arr = s.split( splitString );
return {
pre: arr[ 0 ],
peri: splitString,
post: arr[ 1 ]
};
}


function addWordSection() {
function addWordSection() {
var defaultTemplate, polishTemplate, otherTemplate;
var isPhrase = false;
if (
mw.config.get( 'wgNamespaceNumber' ) === 0 &&
mw.config.get( 'wgTitle' ).indexOf( ' ' ) !== -1
) {
isPhrase = true;
}
defaultTemplate = [
'== ' + mw.config.get( 'wgTitle' ) + ' ({{$1}}) ==',
'{{wymowa}}',
'{{znaczenia}}',
'\'\'$2\'\'',
': (1.1) [[krótki|krótka]] [[definicja]]',
'{{odmiana}}',
'{{przykłady}}',
': (1.1) \'\'[[przykład|Przykład]] [[zdanie|zdania]].\'\' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].',
'{{składnia}}',
'{{kolokacje}}',
'{{synonimy}}',
'{{antonimy}}',
'{{hiperonimy}}',
'{{hiponimy}}',
'{{holonimy}}',
'{{meronimy}}',
'{{pokrewne}}',
'{{frazeologia}}',
'{{etymologia}}',
'{{uwagi}}',
'{{tłumaczenia}}',
'* angielski: (1.1) [[ ]]',
'{{źródła}}'
];
polishTemplate = $.merge( [], defaultTemplate );
polishTemplate[ 7 ] = ': (1.1) \'\'[[przykład|Przykład]] [[zdanie|zdania]].\'\'';

otherTemplate = $.merge( [], defaultTemplate );
otherTemplate.splice( 20, 2 ); // pole 'tłumaczenia'
// Nowy toolbar z nowymi sekcjami językowymi
// Nowy toolbar z nowymi sekcjami językowymi
$wpTextbox.wikiEditor( 'addToToolbar', {
$wpTextbox.wikiEditor( 'addToToolbar', {
Linia 26: Linia 82:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
defaultTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język ",
peri: "jaki",
"język jaki",
( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' ) + ", rodzaj żeński, męski",
post: "}}) ==\n{{wymowa}}\n{{znaczenia}}\n''rzeczownik, rodzaj żeński, męski''\n: (1.1) [[krótki|krótka]] [[definicja]]\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].'' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{tłumaczenia}}\n* angielski: (1.1) [[ ]]\n{{źródła}}"
}
"jaki"
)
}
}
}
}
Linia 52: Linia 109:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
polishTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język polski}}) ==\n{{wymowa}}\n{{znaczenia}}\n''rzeczownik, rodzaj żeński, męski''\n: (1.1) ",
peri: "[[krótki|krótka]] [[definicja]]",
"język polski",
( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' ) + ", rodzaj żeński, męski"
post: "\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].''\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{tłumaczenia}}\n* angielski: (1.1) [[ ]]\n{{źródła}}"
}
)
}
}
},
},
Linia 65: Linia 122:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
polishTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język polski}}) ==\n{{wymowa}}\n{{znaczenia}}\n''przymiotnik''\n: (1.1) ",
peri: "[[krótki|krótka]] [[definicja]]",
"język polski",
( isPhrase ? 'fraza przymiotnikowa' : 'przymiotnik' ),
post: "\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].''\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{tłumaczenia}}\n* angielski: (1.1) [[ ]]\n{{źródła}}"
"[[krótki|krótka]] [[definicja]]"
}
)
}
}
},
},
Linia 78: Linia 136:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
polishTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język polski}}) ==\n{{wymowa}}\n{{znaczenia}}\n''czasownik''\n: (1.1) ",
peri: "[[krótki|krótka]] [[definicja]]",
"język polski",
( isPhrase ? 'fraza czasownikowa' : 'czasownik' )
post: "\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].''\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{tłumaczenia}}\n* angielski: (1.1) [[ ]]\n{{źródła}}"
}
)
}
}
}
}
Linia 105: Linia 163:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
otherTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język angielski}}) ==\n{{wymowa}}\n{{znaczenia}}\n''rzeczownik''\n: (1.1) ",
peri: "[[krótki|krótka]] [[definicja]]",
"język angielski",
( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' )
post: "\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].'' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}"
}
)
}
}
},
},
Linia 118: Linia 176:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
otherTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język angielski}}) ==\n{{wymowa}}\n{{znaczenia}}\n''przymiotnik''\n: (1.1) ",
peri: "[[krótki|krótka]] [[definicja]]",
"język angielski",
( isPhrase ? 'fraza przymiotnikowa' : 'przymiotnik' )
post: "\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].'' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}"
}
)
}
}
},
},
Linia 131: Linia 189:
action: {
action: {
type: 'encapsulate',
type: 'encapsulate',
options: {
options: makeOptions(
otherTemplate,
pre: "== " + mw.config.get( 'wgTitle' ) + " ({{język angielski}}) ==\n{{wymowa}}\n{{znaczenia}}\n''czasownik''\n: (1.1) ",
peri: "[[krótki|krótka]] [[definicja]]",
"język angielski",
( isPhrase ? 'fraza czasownikowa' : 'czasownik' )
post: "\n{{odmiana}}\n{{przykłady}}\n: (1.1) ''[[przykład|Przykład]] [[zdanie|zdania]].'' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}"
}
)
}
}
}
}

Wersja z 18:25, 8 kwi 2015

var $wpTextbox;

function makeOptions( template, firstParam, secondParam, splitString ) {
	var s, arr;
	
	splitString = splitString || '[[krótki|krótka]] [[definicja]]';
	s = mw.format( template.join( '\n' ), firstParam, secondParam );
	arr = s.split( splitString );
	
	return {
		pre:  arr[ 0 ],
		peri: splitString,
		post: arr[ 1 ]
	};
}

function addWordSection() {
	var defaultTemplate, polishTemplate, otherTemplate;
	var isPhrase = false;
	
	if (
		mw.config.get( 'wgNamespaceNumber' ) === 0 &&
		mw.config.get( 'wgTitle' ).indexOf( ' ' ) !== -1
	) {
		isPhrase = true;
	}
	
	defaultTemplate = [
		'== ' + mw.config.get( 'wgTitle' ) + ' ({{$1}}) ==',
		'{{wymowa}}',
		'{{znaczenia}}',
		'\'\'$2\'\'',
		': (1.1) [[krótki|krótka]] [[definicja]]',
		'{{odmiana}}',
		'{{przykłady}}',
		': (1.1) \'\'[[przykład|Przykład]] [[zdanie|zdania]].\'\' → [[tłumaczenie|Tłumaczenie]] [[zdanie|zdania]].',
		'{{składnia}}',
		'{{kolokacje}}',
		'{{synonimy}}',
		'{{antonimy}}',
		'{{hiperonimy}}',
		'{{hiponimy}}',
		'{{holonimy}}',
		'{{meronimy}}',
		'{{pokrewne}}',
		'{{frazeologia}}',
		'{{etymologia}}',
		'{{uwagi}}',
		'{{tłumaczenia}}',
		'* angielski: (1.1) [[ ]]',
		'{{źródła}}'
	];
	
	polishTemplate = $.merge( [], defaultTemplate );
	polishTemplate[ 7 ] = ': (1.1) \'\'[[przykład|Przykład]] [[zdanie|zdania]].\'\'';

	otherTemplate = $.merge( [], defaultTemplate );
	otherTemplate.splice( 20, 2 ); // pole 'tłumaczenia'
	
	// Nowy toolbar z nowymi sekcjami językowymi
	$wpTextbox.wikiEditor( 'addToToolbar', {
		'sections': {
			'addword': {
				'type': 'toolbar',
				'label': 'Nowa sekcja'
			}
		}
	} );

	//----------------
	// Sekcja 'inne'
	$wpTextbox.wikiEditor( 'addToToolbar', {
		'section': 'addword',
		'groups': {
			'other': {
				'label': '<a href="//pl.wiktionary.org/wiki/Wikis%C5%82ownik:Zasady_tworzenia_hase%C5%82" target="_blank">Zasady</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nowe hasło:',
				'tools': {
					'misc': {
						label: 'Nowe hasło',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Nuvola_action_edit_add.svg/22px-Nuvola_action_edit_add.svg.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								defaultTemplate,
								"język jaki",
								( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' ) + ", rodzaj żeński, męski",
								"jaki"
							)
						}
					}
				}
			}
		}
	} );

	//----------------
	// Sekcja 'polski'
	$wpTextbox.wikiEditor( 'addToToolbar', {
		'section': 'addword',
		'groups': {
			'pl': {
				'label': 'Polski',
				'tools': {
					'rzeczownik': {
						label: 'Nowe hasło (rzeczownik, język polski)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								polishTemplate,
								"język polski",
								( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' ) + ", rodzaj żeński, męski"
							)
						}
					},
					'przymiotnik': {
						label: 'Nowe hasło (przymiotnik, język polski)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								polishTemplate,
								"język polski",
								( isPhrase ? 'fraza przymiotnikowa' : 'przymiotnik' ),
								"[[krótki|krótka]] [[definicja]]"
							)
						}
					},
					'czasownik': {
						label: 'Nowe hasło (czasownik, język polski)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								polishTemplate,
								"język polski",
								( isPhrase ? 'fraza czasownikowa' : 'czasownik' )
							)
						}
					}
				}

			}
		}
	} );

	// -----------------
	// Sekcja 'angielski'
	$wpTextbox.wikiEditor( 'addToToolbar', {
		'section': 'addword',
		'groups': {
			'en': {
				'label': 'Angielski',
				'tools': {
					'rzeczownik': {
						label: 'Nowe hasło (rzeczownik, język angielski)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								otherTemplate,
								"język angielski",
								( isPhrase ? 'fraza rzeczownikowa' : 'rzeczownik' )
							)
						}
					},
					'przymiotnik': {
						label: 'Nowe hasło (przymiotnik, język angielski)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								otherTemplate,
								"język angielski",
								( isPhrase ? 'fraza przymiotnikowa' : 'przymiotnik' )
							)
						}
					},
					'czasownik': {
						label: 'Nowe hasło (czasownik, język angielski)',
						type: 'button',
						icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
						action: {
							type: 'encapsulate',
							options: makeOptions(
								otherTemplate,
								"język angielski",
								( isPhrase ? 'fraza czasownikowa' : 'czasownik' )
							)
						}
					}
				}

			}
		}
	} );
}

if (
	$.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 &&
	mw.user.options.get( 'usebetatoolbar' )
) {
	mw.loader.using( 'ext.wikiEditor.toolbar', function() {
		$( document ).ready( function() {
			$wpTextbox = $( '#wpTextbox1' );
			addWordSection();
			mw.hook( 'toolbarGadget.addWordReady' ).fire( $wpTextbox );
		} );
	} );
}

/* Otwórz nowym użytkownikom z defaultu "Nowa sekcja językowa". Autor: [[user:Olaf]] */
if (
	$.cookie( 'addword-gadget-toolbar-section-set' ) === null &&
	$.cookie( 'wikiEditor-0-toolbar-section' ) === null
) {
	$.cookie( 'wikiEditor-0-toolbar-section', 'addword', {
		expires: 30,
		path: '/'
	} );

	$.cookie( 'addword-gadget-toolbar-section-set', 'true', {
		expires: 30,
		path: '/'
	} );
}