Dyskusja modułu:Książka:Zbiór zadań maturalnych
Dodaj tematLinia 10 w module lua: Książka:Zbiór zadań maturalnych
[edytuj]Co masz na myśli pisząc kod w języku Lua w Scribunto:
if przedmiot == {biologia or Biologia or BIOLOGIA} then
Tu są zmienne: biologia
, Biologia
i Biologia
, oznaczają one pewne zmienne, nie wartości, albo, się mylę. Takie przyrównanie nie ma sensu, bo przyrównujemy wtedy ciąg (łańcuch) do tablicy zmiennych. Persino (dyskusja) 16:15, 9 cze 2021 (CEST)
- Poprawiłem, a oto zmiany: tutaj. Persino (dyskusja) 16:24, 9 cze 2021 (CEST)
- Dzięki :) Superjurek (dyskusja) 16:28, 9 cze 2021 (CEST)
- Poprawiłem wszystkie zauważone błędy. Persino (dyskusja) 16:57, 9 cze 2021 (CEST)
- @Persino: Zauważyłem problem. Kiedy wstawiam w zadaniu takie przywołanie , to uzyskuję taki komunikat: Błąd Lua w module „Moduł:Książka:Zbiór zadań maturalnych”, w linii 16: attempt to compare boolean with number. Superjurek (dyskusja) 18:03, 9 cze 2021 (CEST)
{{#invoke:Książka:Zbiór zadań maturalnych|numer|biologia|{{SUBPAGENAME}}}}
- Już poprawiłem. Persino (dyskusja) 19:13, 10 cze 2021 (CEST)
- @Persino: Zauważyłem problem. Kiedy wstawiam w zadaniu takie przywołanie
- Poprawiłem wszystkie zauważone błędy. Persino (dyskusja) 16:57, 9 cze 2021 (CEST)
- Dzięki :) Superjurek (dyskusja) 16:28, 9 cze 2021 (CEST)
Kolorowanie komórek
[edytuj]@Persino: Idąc dalej z planem pokolorowania komórek w szablonach, a nie tylko ich obramowywania, utworzyłem następujący kod:
-- W tym miejscu moduł koduje zaznaczenie odpowiedniej komórki w tabeli
local p = {}
function p.zaznacz_komorke()
local nazwa_strony = frame.args[1] and tostring(frame.args[1])
if(not nazwa_strony) then styl_przedmiotu="" return styl_przedmiotu end;
local przedmiot=string.find(nazwa_strony, "Biologia") if przedmiot~=nil then
styl_przedmiotu="background-color: #52E47D !important;" end
local przedmiot=string.find(nazwa_strony, "Matematyka") if przedmiot~=nil then
styl_przedmiotu="background-color: #FF6A6F !important;"
end
return "border-top:5px solid black;border-right:5px solid black;border-bottom:5px solid black;" .. styl_przedmiotu
end
Jednak, co mnie zdziwiło, to to że nie zadziałała funkcja string.find(); założyłem, że wyszuka w nazwie strony słowa Biologia lub Matematyka, to albo zwróci cokolwiek i wtedy zwróci styl z kolorem komórki, albo zwróci nil i tym samym dodatkowy styl zostanie wyłączony. Błąd, który popełniłem w niniejszym kodzie jest jakiś kosmetyczny? Czy w ogóle o co innego chodzi i mój pomysł musi być inaczej zdefiniowany w Wikikodzie? Z góry dziękuję za pomoc :) Superjurek (dyskusja) 12:44, 25 sie 2022 (CEST)
- Dodam tylko, że frame.args[1] w kodzie szablonu Szablon:Książka:Zbiór zadań maturalnych/komórka był definiowany poprzez kod
style="{{#invoke:Książka:Zbiór zadań maturalnych|zaznacz_komorke|{{PAGENAME}}}}"{{!}}<noinclude>{{Dokumentacja}} [[Kategoria:Książka:Zbiór zadań maturalnych/Szablony]]</noinclude> [[Kategoria:Książka:Zbiór zadań maturalnych/strony przywołujące moduł zbioru]]
Kiedy uruchomiłem te nowe linijki kodu w module, to zwraca komunikat, że jest błąd w linijce nr 5. Superjurek (dyskusja) 12:54, 25 sie 2022 (CEST)
@Superjurek: Napisz tak, sprawdź, czy dobrze!:
-- W tym miejscu moduł koduje zaznaczenie odpowiedniej komórki w tabeli
local p = {}
function p.zaznacz_komorke(frame)
local nazwa_strony = frame.args[1] or mw.title.getCurrentTitle().text;
if(not nazwa_strony) then return "";end;
local styl_przedmiotu;
if(not mw.ustring.find(nazwa_strony, "Biologia"))then styl_przedmiotu="background-color: #52E47D !important;";end;
if(not mw.ustring.find(nazwa_strony, "Matematyka"))then styl_przedmiotu="background-color: #FF6A6F !important;";end;
return "border-top:5px solid black;border-right:5px solid black;border-bottom:5px solid black;"..(styl_przedmiotu or "");
end
Pamiętaj o deklarowaniu zmiennych, bo może dojść do nieprzewidywalnych rezultatów., a zmienna frame.args[1]
jest równa łańcuchowi lub jest równa nil
.
A wywołanie w Szablon:Książka:Zbiór zadań maturalnych/komórka, nie trzeba zmieniać, a parametr pierwszy tej ramki jest opcjonalny, czyli frame.args[1]
. Persino (dyskusja) 20:00, 25 sie 2022 (CEST)
- @Persino: Wszystko działa, dziękuję pięknie! :) Superjurek (dyskusja) 20:34, 25 sie 2022 (CEST)
- @Persino coś się znowu skrzaczyło. Nie znam się aż tak dobrze na oprogramowaniu MediaWiki, ale przy niezmienionym kodzie kolorowanie komórek zmieniło swoją funkcjonalność i niezależnie czy jest to strona zawierająca w swojej nazwie "Matematyka", czy też "Biologia", to koloruje w ten sposób
#808000
. Z czego to wynika? Superjurek (dyskusja) 20:05, 8 cze 2023 (CEST)- @Superjurek: Poprawiłem stronę modułu: {{#invoke:Książka:Zbiór zadań maturalnych|zaznacz_komorke}}, dodałem instrukcje
else
i rozkaznot
usunąłem z kodu, dalej sprawdź, czy kolory tła są prawidłowe, jedynie je można by zmienić... Persino (dyskusja) 11:15, 9 cze 2023 (CEST) - @Superjurek: Dokonałem też innych edycji w tym module, sprawdź, czy wszystko OK działa! Persino (dyskusja) 14:51, 9 cze 2023 (CEST)
- @Persino Sprawdziłem i rzeczywiście problem rozwiązany. Dziękuję :) Superjurek (dyskusja) 23:08, 11 cze 2023 (CEST)
- @Superjurek: Poprawiłem stronę modułu: {{#invoke:Książka:Zbiór zadań maturalnych|zaznacz_komorke}}, dodałem instrukcje
- @Persino coś się znowu skrzaczyło. Nie znam się aż tak dobrze na oprogramowaniu MediaWiki, ale przy niezmienionym kodzie kolorowanie komórek zmieniło swoją funkcjonalność i niezależnie czy jest to strona zawierająca w swojej nazwie "Matematyka", czy też "Biologia", to koloruje w ten sposób