Wikipedia:Narzędzia/disFixer
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
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)
Główne hooki:
- userjs.disFixer.actioninit
- userjs.disFixer.actionready
Uważaj przy używaniu actioninit
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
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
- 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?
Śmiało raportuj! ;).