Dyskusja szablonu:Numerowanie w tabeli

Treść strony nie jest dostępna w innych językach.
Z Wikipedii, wolnej encyklopedii

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)[odpowiedz]

  • Kod do obsługi zaczyna się najprawdopodobniej tutaj. Paweł Ziemian (dyskusja) 22:26, 27 wrz 2021 (CEST)[odpowiedz]
    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)[odpowiedz]

@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)[odpowiedz]

  • 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)[odpowiedz]
    @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)[odpowiedz]
    @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)[odpowiedz]
    @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 atrybutem class="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)[odpowiedz]
    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)[odpowiedz]
    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)[odpowiedz]