Wikipedia:Narzędzia/dodatkowe przyciski opisu edycji

Z Wikipedii, wolnej encyklopedii
O spostrzeżonych błędach i życzeniach nowych funkcjonalności pisz w kawiarence, przy stoliku technicznym. Ale najpierw przejrzyj sekcję poświęconą błędom poniższego opisu, a następnie oczyść pamięć podręczną przeglądarki. Możliwe, że Twój problem został już rozwiązany.

Opisując swój problem, staraj się być możliwie precyzyjny – podaj wersję przeglądarki i nazwę używanej skórki. Powiadom mnie o nowym wątku na mojej stronie dyskusji, żebym nie przegapił.

autor: Wikipedysta:Skalee • kod źródłowy: Wikipedysta:Skalee/dodatkowe przyciski opisu edycji.js • licencje: MIT i standardowe Wikipedii

Dodatkowe przyciski opisu edycji umożliwiają łatwe definiowanie przycisków, które pojawią się na ekranie edycji artykułu i umożliwiają ustawianie opisu edycji za pomocą jednego kliknięcia myszą.

Zaraz pod tekstem Wypełnij opis zmian widoczne są zielone przyciski: +rozwiń skróty, ort., lit., int., ogonki, linki-zew. Wielu wikipedystów ceni te przyciski za wygodę, z jaką mogą opisywać najbardziej typowe zmiany. Nie pogardziliby jednak możliwością rozszerzenia tej listy o dodatkowe przyciski, dostosowane do potrzeb ich prac na Wikipedii.

Poniższy skrypt umożliwia dodanie dodatkowych przycisków z typowymi opisami edycji. Dodane przyciski mogą być dowolnie grupowane w wiersze, a także dowolnie stylizowane dla lepszej przejrzystości. Wszystko to możliwe było już wcześniej, ale nigdy w tak prostej formie.

Pamiętaj, że opis edycji musi być merytoryczny i konkretny. Nie zawsze jakiś ogólny, wyklikany opis jest wystarczający. Często i tak należy doprecyzować o co w edycji chodziło. Nieprecyzyjne opisy mogą wywoływać zamieszanie, a nawet prowadzić do niepotrzebnych napięć pomiędzy wikipedystami. Poniższe narzędzie stosuj z rozwagą.

Przykład instalacji[edytuj | edytuj kod]

W swoim common.js wklej i odpowiednio do potrzeb zmodyfikuj (zamień treści, dodaj kolejne wiersze dla kolejnych przycisków; patrz: #Konfiguracja):

dodatkowePrzyciskiOpisuEdycjiUstawienia = [
  {opis: 'szablony problemów', skrot: 'sz.pr.', nrWiersza: 1, kolorTla: 'whitesmoke'},
  {opis: 'potrzebne źródła', skrot: 'p.źródła', nrWiersza: 1, kolorTla: 'whitesmoke'},
  {opis: 'potrzebne przypisy w artykule zamiast bibliografii lub linków zewnętrznych', skrot: 'p.przypisy', nrWiersza: 1, kolorTla: 'whitesmoke'},
  {opis: 'dopracować', skrot: 'dopr.', nrWiersza: 1, kolorTla: 'whitesmoke'},
  {opis: 'potrzebna aktualizacja', skrot: 'p.akt.', nrWiersza: 1, kolorTla: 'whitesmoke'},
  {opis: '+źródła', skrot: '+źr', nrWiersza: 2, kolorTla: 'blanchedalmond'},
  {opis: 'posortowano', skrot: 'sort', nrWiersza: 2, kolorTla: 'blanchedalmond'},
  {opis: 'uaktualniono', skrot: 'akt.', nrWiersza: 2, kolorTla: 'blanchedalmond', kolorTekstu: 'red'},
  {opis: 'drobne językowe', skrot: 'dr.jęz.', nrWiersza: 2, kolorTla: 'deepskyblue', styl:'color:azure;'}
];
 
importScript('Wikipedysta:Skalee/dodatkowe_przyciski_opisu_edycji.js');

Nowe przyciski będą rozmieszczone w dwóch wierszach. Wiersz pierwszy złożony jest z 4 przycisków o kolorze tła whitesmoke. Wiersz drugi złożony jest z 5 przycisków: 3 pierwsze o kolorze tła blanchedalmond i następujące po nich 2 o kolorze tła deepskyblue i kolorze czcionki azure. Pierwszy przycisk w pierwszym wierszu nosi etykietę sz.pr. i wstawia do opisu edycji tekst szablony problemów. Drugi przycisk w pierwszym wierszu nosi etykietę p.źródła i wstawia do opisu edycji tekst potrzebne źródła, itd. Ostatni przycisk ostatniego wiersza to zaawansowane wykorzystanie przycisku: zamiast zwykłego dodania opisu, wykonanie dowolnego wyrażenia JavaScript. Jeżeli nie wiesz o co chodzi, to się nie przejmuj - najprawdopodobniej i tak nie będziesz taką możliwością zainteresowany.

Niestety, nie przewiduje się możliwości prostszej instalacji (np. w Gadżetach na panelu preferencji) ponieważ i tak gdzieś trzeba zdefiniować jakie dodatkowe przyciski mają się pojawić. Mam nadzieję, że nie jest to wielki problem.

Uwagi:

  1. Zwróć szczególną uwagę gdzie są przecinki, nawiasy, dwukropki itp. Język JavaScript bywa bardzo wrażliwy na tym punkcie.
  2. U mnie pomimo poprawnego common.js przyciski początkowo się nie pojawiały. Pomogło ponowne otworzenie do edycji i zapisanie common.js (być może po prostu oprogramowanie MediaWiki potrzebowało chwili czasu).

Konfiguracja[edytuj | edytuj kod]

Tutaj znajdziesz nazwy kolorów, które możesz wykorzystywać.

Opis parametrów każdego z przycisków

Nazwa Obowiązkowy Opis Dopuszczalne wartości
nrWiersza tak Numer wiersza, w którym pojawić się ma przycisk. dodatnie liczby całkowite
skrot tak Etykieta przycisku. dowolny tekst, zalecane 3-10 znaków
kolorTla nie Kolor tła przycisku. Jeżeli pominiesz ten parametr, kolor będzie taki, jak w standardowych przyciskach (#BBFFBB). dowolny kolor HTML
kolorTekstu nie Kolor tekstu na przycisku. Jeżeli pominiesz ten parametr, kolor będzie taki, jak w standardowych przyciskach (czarny). dowolny kolor HTML
styl nie Jeżeli ustawienie koloru tła jest niewystarczające, to tym parametrem możesz przekazać dowolne style css (opcja zaawansowana). css
opis tak, jeżeli nie podano parametru funkcja Tekst, który ma zostać dopisany do opisu edycji po naciśnięciu tego przycisku. Dowolny, merytoryczny tekst
funkcja tak, jeżeli nie podano parametru opis Dowolne wyrażenie JavaScript, które ma zostać wykonane po kliknięciu przycisku (opcja zaawansowana). dowolne wyrażenie JavaScript

Użycie parametru funkcja[edytuj | edytuj kod]

Jeżeli podano parametr funkcja, to po naciśnięciu przycisku wykona się dowolna funkcja lub wyrażenie JavaScript zamiast dodania opisu. Te można określać na dwa sposoby:

  • obiekt funkcji, np.
    • function(){ alert('pokaż się'); }
    • new Function("alert('pokaż się')")
  • łańcuch znaków zawierający wyrażenie, np. "alert('pokaż się');"
Przykład 1 – wywołanie gadżetu Wikiprojekt:Sprzątanie kodu (gadżet wciąż musi być włączony w preferencjach).
dodatkowePrzyciskiOpisuEdycjiUstawienia = [
  {funkcja: function() { wp_sk.cleanup(document.getElementById('wpTextbox1')); }, skrot: 'wp sk', nrWiersza: 1}
];
Przykład 2 – dodanie opisu edycji pomimo użycia parametru funkcja

Można skorzystać z funkcji dodajOpis(opis), zdefiniowanej tutaj.

dodatkowePrzyciskiOpisuEdycjiUstawienia = [
  {funkcja: function() { alert("zaraz pojawi się okienko, po naciśnięciu ok dodany zostanie opis"); dodajOpis("teraz dodaję opis"); }, skrot: 'alert i opis', nrWiersza: 1}
];

Ukrywanie domyślnych przycisków[edytuj | edytuj kod]

Nowy sposób[edytuj | edytuj kod]

Zaraz po zdefiniowaniu przycisków dopisz taką linię:

dodatkowePrzyciskiOpisuEdycjiUstawienia.ukrywajStandardowePrzyciski = true;

Powyższa wstawka ukrywa wszystkie domyślne przyciski. Jeżeli chcesz zachować niektóre z nich, musisz zdefiniować je tak, jak definiujesz swoje. Mała ściągawka:

  {opis: 'ort.', skrot: 'ort.', nrWiersza: 1},
  {opis: 'lit.', skrot: 'lit.', nrWiersza: 1},
  {opis: 'int.', skrot: 'int.', nrWiersza: 1},
  {opis: 'polskie znaki', skrot: 'ogonki', nrWiersza: 1},
  {opis: 'linki zewnętrzne', skrot: 'linki-zew', nrWiersza: 1},
  {opis: 'poprawa linków', skrot: 'linki-popr', nrWiersza: 1},
  {opis: '[[Pomoc:Interwiki|interwiki]]', skrot: 'interwiki', nrWiersza: 1},
  {opis: 'kat.', skrot: 'kat.', nrWiersza: 1},
  {opis: '[[Pomoc:Słowniczek#W|wikizacja]]', skrot: 'wikizacja', nrWiersza: 1},
  {opis: 'źródła/przypisy', skrot: 'przypisy', nrWiersza: 1},
  {opis: 'ujednoznacznienie', skrot: 'ujedn.', nrWiersza: 1},
  {opis: 'ilustracja', skrot: 'ilustr.', nrWiersza: 1},
  {opis: 'szablon', skrot: 'szablon', nrWiersza: 1},
  {opis: 'infobox', skrot: 'infobox', nrWiersza: 1},

  {opis: 'drobne merytoryczne', skrot: 'dr. meryt.', nrWiersza: 2},
  {opis: 'drobne redakcyjne', skrot: 'dr. red.', nrWiersza: 2},
  {opis: 'drobne techniczne', skrot: 'dr. tech.', nrWiersza: 2},
  {opis: 'witaj', skrot: 'witaj', nrWiersza: 2},
  {opis: 'test', skrot: 'test', nrWiersza: 2},
  {opis: '[[WP:NPA|NPA]]', skrot: 'npa', nrWiersza: 2},
  {opis: '[[WP:WER|Potrzebne źródło]]', skrot: 'wer', nrWiersza: 2},
  {opis: '[[Wikipedia:Poczekalnia|Poczekalnia DNU]]', skrot: 'dnu', nrWiersza: 2},
  {opis: '[[Kategoria:Ekspresowe kasowanie|ek]]', skrot: 'ek', nrWiersza: 2},
  {opis: 'przywrócenie poprzedniej wersji', skrot: 'rew.', nrWiersza: 2},
  {opis: 'integracja (autorzy: [[Wikipedysta:]], [[Wikipedysta:]]...', skrot: 'integracja', nrWiersza: 2},
  {opis: 'głos', skrot: 'głos', nrWiersza: 2},
  {opis: 'komentarz', skrot: 'komentarz', nrWiersza: 2}

Przykład:

dodatkowePrzyciskiOpisuEdycjiUstawienia = [
  {opis: 'ort.', skrot: 'ort.', nrWiersza: 1},
  {opis: 'lit.', skrot: 'lit.', nrWiersza: 1},
  {opis: 'int.', skrot: 'int.', nrWiersza: 1},
  {opis: 'polskie znaki', skrot: 'ogonki', nrWiersza: 1},
  {opis: 'linki zewnętrzne', skrot: 'linki-zew', nrWiersza: 1},
  {opis: 'poprawa linków', skrot: 'linki-popr', nrWiersza: 1},
  {opis: '[[Pomoc:Interwiki|interwiki]]', skrot: 'interwiki', nrWiersza: 1},
  {opis: 'kat.', skrot: 'kat.', nrWiersza: 1},
  {opis: '[[Pomoc:Słowniczek#W|wikizacja]]', skrot: 'wikizacja', nrWiersza: 1},
  {opis: 'źródła/przypisy', skrot: 'przypisy', nrWiersza: 1},
  {opis: 'ujednoznacznienie', skrot: 'ujedn.', nrWiersza: 1},
  {opis: 'ilustracja', skrot: 'ilustr.', nrWiersza: 1},
  {opis: 'szablon', skrot: 'szablon', nrWiersza: 1},
  {opis: 'infobox', skrot: 'infobox', nrWiersza: 1},

  {opis: 'nowy opis 1', skrot: 'przycisk 1', nrWiersza: 5},
  {opis: 'nowy opis 2', skrot: 'przycisk 2', nrWiersza: 5},
  {opis: 'nowy opis 3', skrot: 'przycisk 3', nrWiersza: 5}
];

dodatkowePrzyciskiOpisuEdycjiUstawienia.ukrywajStandardowePrzyciski = true;

Stary sposób[edytuj | edytuj kod]

Stary sposób domyślnie zwijam, żeby nie mieszał w głowach. Nie znaczy to, że jest zły, jest równie dobry. W dodatku nie jest w żaden sposób związany z narzędziem "Dodatkowe przyciski opisu edycji" i będzie działać także bez niego w większości współczesnych przeglądarek (w przypadku IE od wersji 9). Nowy sposób jest ciut prostszy i wprowadza mniej zamieszania do konfiguracji, toteż go promuję.

Poniższe zmiany należy wprowadzać w pliku Specjalna:Moja strona/common.css (wyjątkowo nie common.js).

Aby ukryć piąty przycisk (uwaga, jako pierwszy liczony jest "rozwiń skróty", zatem piątym jest ten z opisem "ogonki"), dopisz:

#userSummaryButtons > a:nth-of-type(5) {display: none;}

Aby ukryć wszystkie domyślne przyciski, ale pozostawić przycisk "rozwiń skróty":

#userSummaryButtons > *:nth-child(-n+30) {display: none;}
#userSummaryButtons > *:nth-child(1) {display: inline !important;}

Aby ukryć wszystkie domyślne przyciski i do tego przycisk "rozwiń skróty":

#userSummaryButtons > *:nth-child(-n+30) {display: none;}

Inny separator opisów[edytuj | edytuj kod]

Domyślnie poszczególne opisy zmian oddzielane są przecinkiem, można to jednak zmienić. Dopisz taką linię:

dodatkowePrzyciskiOpisuEdycjiUstawienia.separator = '; ';

a opisy zmian będą oddzielane średnikiem. (Zwróć uwagę, że po średniku jest jeszcze spacja. Bez niej następny opis następowałby bezpośrednio po średniku, bez żadnego odstępu). Opisy z domyślnych przycisków też będą oddzielane separatorem, który wybrałeś. Niestety, wiele gadżetów (w tym WP:SK) wciąż będzie stosować przecinek.

Błędy[edytuj | edytuj kod]

  • Skrypt nie włącza się na niektórych instalacjach Firefoksa.
    • status: Załatwione w wersji 0.2 (8 czerwca 2011); specjalne podziękowania dla Powerka38

Zobacz też[edytuj | edytuj kod]

  • kod źródłowy
  • Wikipedia:Narzędzia/magicOfGreenRectangles - podobne narzędzie autorstwa Beau i Bulwersatora
    • brak możliwości stylizacji przycisków (mniej przejrzysty interfejs)
    • brak możliwości wywoływania dowolnego JavaScriptu
    • (ciut) bardziej skomplikowana i mniej przejrzysta konfiguracja
    • ale: łatwa możliwość dopisywania treści do artykułu (np. jednym kliknięciem wstawiasz na górze artykułu szablon {{Źródła}} i dodajesz do opisu potrzebne źródła); W tym narzędziu też jest to możliwe, ale (póki co) dość skomplikowane
    • różne przyciski w zależności od rodzaju edytowanej strony
    • można używać obu narzędzi jednocześnie