Wikipedia:Narzędzia/disFixer
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Wikipedia_disFixer_disambig_autocomplete.png/440px-Wikipedia_disFixer_disambig_autocomplete.png)
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 | edytuj kod]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 | edytuj kod]Główne hooki:
- userjs.disFixer.actioninit
- userjs.disFixer.actionready
Uważaj przy używaniu actioninit
[edytuj | edytuj kod]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 | edytuj kod]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 | edytuj kod]- 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.
- W przypadku ustawienia skórki nowoczesnej pod Firefoxem i w najnowszym IE nie działa poprawnie. Nie pojawia się przy edycji hasła.
- Nie działa z edytorem wikikodu 2017 (funkcja eksperymentalna).
Masz pomysł na ulepszenie lub znalazłeś błąd?
[edytuj | edytuj kod]Śmiało raportuj! ;).