Dyskusja szablonu:Numerowanie w tabeli
Błąd/feature sortowania "ordinal"[edytuj kod]
Błąd/feature użycia sortowania "ordinal" - przy sortowaniu znikają kropki przy numerach jeśli te są w niesortowalnej kolumnie (dzieje się to też dla wartości wpisanych z palca).
To NIE jest wina szablonu, dzieje się tak też w tabeli nie używającej tego szablonu.
Przykład "Tabela sortowalna z pominięciem liczby porządkowej" - po pierwszym sortowaniu po drugiej kolumnie, z pierwszej (niesortowalnej) znikają kropki przy numerach. MarMi wiki (dyskusja) 22:00, 27 wrz 2021 (CEST)
- Kod do obsługi zaczyna się najprawdopodobniej tutaj. Paweł Ziemian (dyskusja) 22:26, 27 wrz 2021 (CEST)
- Najprościej było by dodać po prostu kropkę w linii 409, ale to było by rozwiązanie tylko dla tabel używających tego szablonu.
- Żeby nie było sytuacji odwrotnej przy tabelach nie używających tego szablonu (18 tabel) i z numerami bez kropek (jeszcze mniej), to należało by sprawdzić dla pierwszej pozycji, czy numer jest z kropką (choć może się np. trafić taka sytuacja jak w Wzgórza_Krakowa [chyba jedyny, jak na razie, taki wyjątek]). Pseudokod:
var kropka='';
- po 406 linii: jeśli liczba z kropką, ustaw
kropka='.';
...
- 409:
$(td).text( (j+1)+kropka );
MarMi wiki (dyskusja) 00:27, 28 wrz 2021 (CEST)
CSS[edytuj kod]
@Paweł Ziemian: prawdopodobnie istnieją inne przesłanki ku obecnemu rozwiązaniu, o których nie jestem świadom, lecz nadmienię tu na wszelki wypadek, że zamiast kombinacji Lua+JS można uzyskać podobny efekt dzięki prostemu CSS (por. wikt:WS:STAT#Języki, wikt:MediaWiki:Gadget-autonumber.css). Pozdrawiam, Peter Bowman (dyskusja) 11:46, 25 paź 2021 (CEST)
- Kiedy pisałem kod tego modułu nie byłem świadom konsekwencji z nim związanych. Jeśli można go zastąpić skryptem, najlepiej podłączanym przez
ll-script
to jestem za zmianą. Szablon będzie można wyeliminować wstawiając zwykłą tabelkę. Paweł Ziemian (dyskusja) 20:55, 25 paź 2021 (CEST) @Peter Bowman zapomniałem zawołać. Paweł Ziemian (dyskusja) 20:56, 25 paź 2021 (CEST)- @Paweł Ziemian, niezupełnie o to mi chodziło. Zdecydowanie nie chcę generować tej numeracji dynamicznie, gdyż spowoduje to "miganie" elementów na stronie (ponadto iterowanie po rzędach w dużych tabelkach i parsowanie ich HTML będzie żmudne i nieefektywne). Proponuję stworzenie klasy CSS, której dodanie do nagłówka tabelki poskutkuje utworzeniem kolumny z liczbą porządkową. Zero JS. Peter Bowman (dyskusja) 12:38, 26 paź 2021 (CEST)
- @Peter Bowman Nie myślałem o implementacji w JS. Tylko teraz nie mamy mechanizmów dynamicznego ładowania CSS i trzeba to wrzucić do MediaWiki:Common.css lub jakiegoś jego zamiennika. Myślałem tylko o tym aby JS załadował ten CSS, i nic więcej. Taki pusty moduł z deklaracją stylów w definicji gadżetów. Czy to nie zadziała? W szablonach wbudowanym mechanizmem jest templatestyles, ale chodzi głównie o to aby szablonu uniknąć, bo robi wiele różnych problemów z
=
na czele. Ale z drugiej strony jakiś czas temu odchudziłem common.css ze stylów szablonów nawigacyjnych. No to może potraktować to jako core i najzwyczajniej tam dorzucić. Nie ma tego wiele. Paweł Ziemian (dyskusja) 17:52, 26 paź 2021 (CEST)- @Paweł Ziemian: a! Przepraszam, chodziło Ci więc o ll-script (JS) ładujący moduł CSS-only. Tylko że nawet jakby zadziałało, to wychodzi na to samo, czyli najpierw ładuje się strona (HTML), a dopiero potem pojawia się kolumna z numeracją. Rozwiązanie
Common.jsCommon.css będzie korzystniejsze, ale ja bym proponował wydzielić kod do osobnego gadżetu domyślnego, tak jak zrobiłem w Wikisłowniku (dzięki temu nie miesza się z innym kodem). Zgadzam się, że TemplateStyles odpada, bo nie chcemy szablonu, lecz zwykłą tabelkę (w składni wiki lub HTML) z atrybutemclass="autonumber"
. Peter Bowman (dyskusja) 18:10, 26 paź 2021 (CEST) Edit: chodziło mi oczywiście o Common.css, a nie .js. Przepraszam za gafę. Peter Bowman (dyskusja) 00:28, 27 paź 2021 (CEST)- A czemu TemplateStyles odpada? Np. taki en:Template:Static_row_numbers (i szablony towarzyszące) wydaje się działać w miarę bezinwazyjnie. MarMi wiki (dyskusja) 18:27, 26 paź 2021 (CEST)
- Dlatego, że to działa niejako psim swędem. Zgodnie ze specyfikacją gwarantowane jest to, że style będą działały w treści wygenerowanej przez szablon po tagu
templatestyles
. Ja wiem, że tak teraz też zadziała. Jednak gdyby to się kiedyś miało zmienić, to po co wkładać rękę do takiego nocnika? Paweł Ziemian (dyskusja) 19:43, 26 paź 2021 (CEST)
- Dlatego, że to działa niejako psim swędem. Zgodnie ze specyfikacją gwarantowane jest to, że style będą działały w treści wygenerowanej przez szablon po tagu
- A czemu TemplateStyles odpada? Np. taki en:Template:Static_row_numbers (i szablony towarzyszące) wydaje się działać w miarę bezinwazyjnie. MarMi wiki (dyskusja) 18:27, 26 paź 2021 (CEST)
- @Paweł Ziemian: a! Przepraszam, chodziło Ci więc o ll-script (JS) ładujący moduł CSS-only. Tylko że nawet jakby zadziałało, to wychodzi na to samo, czyli najpierw ładuje się strona (HTML), a dopiero potem pojawia się kolumna z numeracją. Rozwiązanie
- @Peter Bowman Nie myślałem o implementacji w JS. Tylko teraz nie mamy mechanizmów dynamicznego ładowania CSS i trzeba to wrzucić do MediaWiki:Common.css lub jakiegoś jego zamiennika. Myślałem tylko o tym aby JS załadował ten CSS, i nic więcej. Taki pusty moduł z deklaracją stylów w definicji gadżetów. Czy to nie zadziała? W szablonach wbudowanym mechanizmem jest templatestyles, ale chodzi głównie o to aby szablonu uniknąć, bo robi wiele różnych problemów z
- @Paweł Ziemian, niezupełnie o to mi chodziło. Zdecydowanie nie chcę generować tej numeracji dynamicznie, gdyż spowoduje to "miganie" elementów na stronie (ponadto iterowanie po rzędach w dużych tabelkach i parsowanie ich HTML będzie żmudne i nieefektywne). Proponuję stworzenie klasy CSS, której dodanie do nagłówka tabelki poskutkuje utworzeniem kolumny z liczbą porządkową. Zero JS. Peter Bowman (dyskusja) 12:38, 26 paź 2021 (CEST)