Wikipedia:Narzędzia/disFixer

podpowiedzi w disFixer (filtrowanie listy)

disFixer to narzędzie pozwalające na łatwą poprawę linków do ujednoznacznień (zobacz też Wikiprojekt:Strony ujednoznaczniające z linkami) i przekierowań. Autorem skryptu jest Matma Rex.

Użycie: Włącz disFixer w zakładce „Gadżety” strony z preferencjami (sekcja „Edycja stron”).

  • Kliknij preferencje (w pasku na górze ekranu), potem na zakładkę gadżety, w sekcji „Edycja stron” kliknij na kwadracik obok „disFixer – narzędzie do poprawiania linków do stron ujednoznaczniających i przekierowań”

Jeśli na stronie są linki do ujednoznacznień, w pasku narzędzi pojawi się przycisk, po kliknięciu którego wyświetli się lista i możliwości poprawy.

Ustawienia

edytuj

Do zarządzania ustawieniami disFixer używa gConfiga. Ustawienia gadżetu można zmienić na stronie preferencji gadżetów po włączeniu go w preferencjach.

Zaawansowane dostosowanie (hooks)

edytuj

Główne hooki:

  • userjs.disFixer.actioninit
  • userjs.disFixer.actionready

Uważaj przy używaniu actioninit

edytuj

Ten hook możesz teoretycznie użyć do zmiany zachowania disFixera, zanim utworzony zostanie główny przycisk/link... Ale...

Przykład zmiany jednej z funkcji:

mw.hook('userjs.disFixer.actioninit').add(function (disFixer, disambigs, redirs) {
	console.log('disFixer.actioninit');

	// Replace one of the functions (class methods).
	// Note! Any function might change and you might need to adjust yours in future.
	disFixer.disHeaderButton = function(title)
	{
		$('#content').prepend('<input id="disBeginButton" type="submit" class="disFixerButton" value="" title="'+title+'" />');
		var $button = $('#disBeginButton');
		return $button;
	};
});
// should do mw.loader after...

Uwaga! Zmiana niektórych funkcji, a w szczególności `disHeaderButton` może być zdradliwe. Musisz uruchomić powyższy kod, zanim oryginalna funkcja zostanie wykonana i utworzy przycisk. Czyli w praktyce musisz ładować disFixer za pomocą `mw.loader` i to najlepiej pod kodem rejestrującym funkcja dla hooka `userjs.disFixer.actioninit`.

Używanie actionready

edytuj

Innym podejściem może być przesunięcie przycisku już po tym jak zostanie utworzony. W tym wypadku nie ma znaczenia, czy użyjesz mw.loader, czy dodasz gadżet w preferencjach.

// move exisiting button (should preserve events, might brake styles)
mw.hook('userjs.disFixer.actionready').add(function (disFixer, disambigs, redirs) {
	console.log('disFixer.actionready');
	if (disBeginButton) {
		document.querySelector('#content').prepend(disBeginButton);
	}
});

Znane problemy

edytuj
  1. Pod Firefoksem skrypt niekiedy uruchamia się przy każdej edycji jakiejkolwiek strony. Należy wtedy włączyć w ustawieniach przechowywanie danych w ciasteczkach zamiast LocalStorage.
  2. W przypadku ustawienia skórki nowoczesnej pod Firefoxem i w najnowszym IE nie działa poprawnie. Nie pojawia się przy edycji hasła.
  3. Nie działa z edytorem wikikodu 2017 (funkcja eksperymentalna).

Masz pomysł na ulepszenie lub znalazłeś błąd?

edytuj

Śmiało raportuj! ;).